Jak stwierdzić, który proces blokuje procesor, jeśli nie sumują się one w 100%?


9

Aplet Monitora systemu Ubuntu stale pokazuje 100% użycia procesora. Jeśli kliknę go, karta zasobów również wyświetli go w 100% w sposób ciągły. Jeśli jednak przejdę do procesów, aby dowiedzieć się, który jest winowajcą, nie ma nic powyżej 10%. Jeśli pójdę na górę, nie ma nic powyżej 10%. Poszczególne procesy nie sumują się do 100%. Próbuję zabić wiele procesów, ale ogólne użycie nadal wynosi 100%. Jak mogę dowiedzieć się, co powoduje procesor?

alternatywny tekst

Jest to niezwykła sytuacja na komputerze, którego używam na co dzień, który nigdy nie jest w pobliżu 100% procesora, chyba że robię coś, co tego wymaga (np. Ładowanie 32 zakładek Firefoksa), po czym wraca do normalnego poziomu bezczynności. To nie jest nowa instalacja ani nic takiego. Nie ma powodu, aby procesor został zmaksymalizowany. Nie jestem pewien, kiedy to się zaczęło, czy zmieniłem coś, co spowodowało, że tak się stało.

Zwykle używałbym programu top lub Monitora systemu i znajdowałem proces, który wymknął się spod kontroli, ale tym razem nie mogę znaleźć niczego z tymi narzędziami. Utrzymuje się po ponownym uruchomieniu i tak dalej.

A procesor jest oczywiście gorący, więc nie jest to błędny odczyt.

Aktualizacja: Próbowałem zabijać każdy proces, jeden po drugim, aż problem zniknął, a zabicie serwera vino ostatecznie go rozwiązało, mimo że proces ten nigdy nie przekroczył 5%. Włączyłem Pulpit zdalny kilka dni temu (i oczywiście teraz go wyłączyłem).

Pozostaje jednak pytanie: w jaki sposób pojedynczy proces wykorzystał 100% procesora, podczas gdy top pokazał tylko ten proces na poziomie 5%? Jak zidentyfikować takich sprawców w przyszłości?

Wygląda na to, że nie tylko ja miałem ten problem:

Nadal problem zarówno w jaunty i karmic. Co ciekawe, zarówno Monitor systemu, jak i htop nie pokazują sumy poszczególnych procesów w pobliżu 100% procesora.


2
Czy twój system również działa wolno? Może to być fałszywy odczyt.
Bobby,

Odpowiedzi:


9

Kiedy mówisz „nic powyżej 10%”, masz na myśli „nikt nie przekracza 10%”? Aby osiągnąć 100%, potrzeba tylko 11 rzeczy o ~ 9%.

Ponadto, część zmierzonego używanego czasu procesora może być czasem oczekiwania we / wy - czas, w którym proces może coś robić, ale nie dlatego, że czeka na odpowiedź urządzenia we / wy (tj. Wykonał żądanie dysku a dysk nie znalazł jeszcze odpowiedniego bitu danych i go zwrócił). Na górze można to zobaczyć w linii (liniach) procesora jako miarę% wa. Stan oczekiwania we / wy jest trochę dziwny - procesor nie jest właściwie zajęty robieniem niczego (więc jeśli inny proces chciałby wykonać jakieś obliczenia, byłby w stanie to zrobić), ale wlicza się do wartości obciążenia systemu, ponieważ obciążenie systemu reprezentuje więcej niż tylko aktywność procesora.

Przydałoby się dodać wynik top -n 1do pytania.

Ponadto, jeśli twoje jądro jest wystarczająco aktualne, aby mieć funkcję księgowania we / wy (jeśli używasz najnowszej wersji Ubuntu, powinno być) i jest włączone, możesz sprawdzić, które procesy aktywnie wykonują operacje we / wy, uruchamiając iotop -n 1 -ob(iotop może nie zostać zainstalowany domyślnie, jeśli go nie masz, spróbuj zainstalować go apt-get install iotoplub znajdując go w menedżerze pakietów GUI.


1
+1 za prośbę o dodanie top -n 1do pytania
Tarnay Kálmán

2

Miałem podobny problem. Procesor cały czas się ładował i żaden z procesów w Monitorze systemu niczego nie pokazywał. Znalazłem jedną odpowiedź, używając polecenia „top” w oknie terminala. To pokazało, że apt hoguje moją jednostkę centralną bez powodu. Dlaczego więc System Manager tego nie pokazał? Okazuje się, że jest opcja w widoku dla wszystkich procesów; mój został sprawdzony jako Moje procesy, więc nigdy nie widziałem winowajcy. Mam nadzieję że to pomoże.


0

Mam ten sam problem, ale dowiedziałem się, że Xorg zużywał 50% procesora, a to pokazało, że [ten błąd] można naprawić za pomocą polecenia sudo rmmod ums_realtek. Tym razem Xorg zużył tylko około 5-10% CPU w monitorze systemu, ale w zakładce zasobów wciąż pokazywał 100%.

Kiedy monitorowałem monitor systemu, zobaczyłem mrugnięcie rootkatów wykorzystujących 100% procesora! Nie miałem czasu, aby zobaczyć, co to jest, ale jestem pewien, że ma to coś wspólnego z tym.


-1

Pierwsze pytanie dotyczy tego, czy twój system wydaje się wolny, czy nie odpowiada. W końcu to twój procesor, zapłaciłeś za to i masz prawo uruchomić go z pełną mocą dla swoich celów. Drugie pytanie dotyczy tego, czy próbujesz zrobić zbyt wiele w swoim systemie, i jeśli to możliwe, powinieneś rozważyć aktualizację. Mój pierwszy system Linux miał powolne 486 i bardzo łatwo go było uzupełnić. Jeśli na przykład korzystasz z OLPC XO, Twoje zasoby są naprawdę ograniczone.

Poważnie, mało prawdopodobne jest jednoczesne uruchamianie wielu nadmiernych zasobów zasobów. Jeśli żaden proces nie zajmie więcej niż 10%, twój system jest kłujący na śmierć przez kaczki i nie będziesz w stanie zmniejszyć obciążenia bez ograniczenia tego, co robisz.

To powiedziawszy, sprawdź swoje usługi systemowe i wyłącz te, których nie chcesz. Rozważ odinstalowanie tych, których naprawdę nie chcesz ( sudo apt-get remove foo). Zwłaszcza jeśli przeciążasz system, każda redukcja obciążenia może jedynie pomóc. Spróbuj wyjść z programów, których nie używasz.

Jeśli istnieje jeden proces, który wykorzystuje cały dostępny procesor, spróbuj go znaleźć, uruchamiając go na górze i zwracając uwagę na to, jaki% zasobów zużywają główne procesy. Kiedy zabijesz kilka, sprawdź, czy jeden rośnie szybciej niż inne. Oczywiście, zabicie takiego procesu nie kupi cię tyle, ponieważ nie będzie to więcej niż 10% obciążenia.


Gdybym używał procesora, wiedziałbym o tym. Nie działa w 100% w sposób ciągły podczas normalnej pracy, a na pewno nie powinno, kiedy zamknę wszystko, co mogę wymyślić.
endolith,

-1
  1. apt-get install cpufrequtils
  2. otwarty /etc/rc.conf
  3. dodaj do MODUŁÓW: MODULES=(# twoje-moduły-nie-dotykaj #acpi-cpufreq cpufreq_ondemand cpufreq_performance)
  4. Restart

Po ponownym uruchomieniu powinieneś uruchomić, cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governorsaby zobaczyć, które moduły są załadowane.

Podczas pracy możesz zmienić gubernatora zgodnie z własnymi potrzebami. Na przykład:

  • cpufreq-set -r -g ondemand

Możesz użyć jednego z następujących regulatorów:

  • wydajność : biegnie CPU przy maksymalnym zegarem (moduł: cpufreq_performance)
  • ondemand : przełącza dynamicznie pomiędzy procesorem (y) taktowaniu na podstawie obciążenia (SYS module: cpufreq_ondemand)
  • konserwatywny : Podobnie jak ondemand, ale CPU (s) Prędkość zegar włącza się stopniowo za pośrednictwem wszystkich dostępnych częstotliwościach (na podstawie sys obciążeniem) (moduł: cpufreq_conservative)
  • energooszczędny : procesora (CPU) pracuje z minimalną prędkością (moduł: cpufreq_powersave)
  • przestrzeń użytkownika : pozwala użytkownikowi ręcznie ustawić prędkość zegara procesora. (moduł: cpufreq_userspace)

Jeśli używasz GNOME2, jest aplet, co jest niesamowite.

  1. Kliknij panel prawym przyciskiem myszy
  2. Dodaj aplet
  3. zacznij pisać: CPUpowinieneś to zobaczyć :)
  4. Kliknij Add

Za pomocą tego apletu możesz przełączać się między dostępnymi zarządcami (do których dodałeś je /etc/rc.confwcześniej).

Na przykład używam ondemandcały czas, ponieważ nie potrzebuję pełnej wydajności, aby uruchomić Eclipse i emulator Androida na moim ArchLinux: P

Summa Summarum - google dla cpufrequtils i naucz się go używać :) To pckg pozwoliło mi zaoszczędzić czas i pieniądze; D

Twoje zdrowie!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.