Zbadam, dlaczego otrzymujemy krytyczne alerty wymiany, i znajdę coś takiego:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ SWAP COMMAND
14683 user1 30 10 16.0g 772m 744 S 0.3 0.3 277:24.87 6.5g MATLAB
14576 user1 30 10 8125m 1.1g 736 S 0.3 0.4 261:16.73 4.1g MATLAB
gdzie kolumna CZAS + jest zamrożona dla tych procesów.
Moje pytanie brzmi: co to oznacza?
Jak rozumiem, zatrzymany czas oznacza, że jest to proces uśpiony / nie przetwarzany przez procesor. Jednak powyższy przykład pokazuje zużycie procesora 0,3%, więc czy pomimo tego, że jest bardzo mały, czy kolumna czasu nie powinna dalej zwiększać?
Czy te procesy są „zakończone”? W takim przypadku, w jaki sposób są czyszczone? Czy użytkownik, który je uruchomił, musi je potwierdzić lub coś, aby uwolnić te zasoby?
Odpowiedzi:
Jeśli uruchomisz fałszywe zadanie, takie jak,
sleep 120
a następnie gohtop
obejrzysz, zauważysz, że jego stan toS
aka „SLEEP”, a procesyTIME
pozostają na czas 0: 00.00.Dzieje się tak, ponieważ proces ten zajmuje 0 czasu procesora, co jest celem
TIME
kolumny. Śledzi ilość czasu procesora wykorzystanego przez dany proces.Ta liczba może być myląca, jeśli proces może działać na wielu rdzeniach procesora, ponieważ może wydawać się, że zużywa więcej czasu niż jest dostępne. Wszystko, co się dzieje, to fakt, że jeśli masz X rdzeni, wtedy twój czas może być wyświetlany jako X * CZAS.
źródło
Powodem, dla którego możesz uzyskać taką rozbieżność, jest to, że kolumna CZAS + nie uwzględnia czasu procesora używanego przez martwe spawnowane dzieci z wymienionego procesu. Wyobrażam sobie, że wyświetlane linie wskazują (prawdopodobnie, szybko) aplikację tarło dzieci, które umierają prawie natychmiast…
So, the CPU usage is due to spawned children which do not count in the TIME+ column.
Możesz zmienić górę, aby skumulować czas za pomocą przełącznika „S”.Ale myślę, że patrzysz na niewłaściwe wskaźniki tego, co chcesz zbadać.
strace -p <pid>
jest tutaj twoim przyjacielem i pozwoli ci zajrzeć do trwającego procesu i do tego, co dokładnie robi.Strace ma mnóstwo opcji. niektóre godne uwagi opcje to -f, -ff, -i, v itp. Strace jest najbardziej użytecznym narzędziem, więc najlepiej to zrobić
man strace
i poszukać opcji, które daje ci przy rozwiązywaniu takich problemówźródło