Jak mogę sprawdzić, czy proces jest powiązany z procesorem, pamięcią lub dyskiem?
performance
ssanj
źródło
źródło
Odpowiedzi:
To wymaga trochę voodoo. To zależy. Przykład:
Jeśli ilość pamięci jest wystarczająca, a dyski nie wydają się zbyt zajęte, może być związane z procesorem. Spójrz na użycie procesora, a jeśli graniczy w 100%, jest związany z procesorem. Jeśli nie, to we wdrażaniu jest sztuczne wąskie gardło. Np. W dwurdzeniowym procesorze proces jedno-wątkowy nie przekroczy 50% wykorzystania procesora.
Jeśli procesor i pamięć są dostępne, ale dyski są bardzo zajęte lub opóźnienie we / wy wydaje się wysokie, istnieje prawdopodobieństwo, że jego we / wy jest związane. Sprawdź, czy dodanie kolejnych dysków (RAID?) Pomaga.
Żadne z powyższych? Sprawdź dostępną pamięć.
Wystarczająca pamięć? Może występować sztuczne wąskie gardło w samym procesie, np. Może ktoś zapomniał usunąć sen (1)? Nie, zwykle nie jest to takie łatwe. ;)
Jest powód, dla którego mamy całe laboratorium inżynierów wydajności w większości firm zajmujących się produktami wrażliwymi na wydajność!
Użyj narzędzi takich jak sar, vmstat, iostat, oprofile, lockstat, dtrace, specyficzne dla produktu narzędzia do monitorowania perf itp., Aby debugować problemy z perf.
źródło
sprawdź
iotop
, może być przydatneźródło
Narzędziem, które może być przydatne do sprawdzania w czasie rzeczywistym szeregu statystyk procesu (pamięci, użycia procesora, operacji we / wy itp.) Jest htop . Nie zastępuje bardziej wyspecjalizowanych narzędzi o nazwie Sudhanshu, ale może być dobrym początkiem.
źródło
Oprócz innych wymienionych narzędzi uruchom
ps l PID
, wstaw odpowiedni identyfikator procesu lub spójrz na kolumny STATE i WCHAN u góry lub u góry.Jeśli jest w stanie D (dla dysku), wówczas wykonuje operacje we / wy pliku. Może to wynikać z tego, że albo odczytuje wiele plików, albo zużywa dużo pamięci i wymienia. Kolumna WCHAN powie ci, jaka funkcja jądra jest w środku; szukanie ich w Google lub pytanie tutaj może dać ci pewne wskazówki, co one oznaczają.
Jeśli jest w stanie R (uruchomionym), używa procesora w przestrzeni użytkownika, innymi słowy, jest on w tym momencie związany z procesorem.
Jeśli jest w stanie S (uśpienia), znajduje się w przerywanym wywołaniu systemowym, co może oznaczać, że albo faktycznie śpi, albo robi coś w stylu oczekiwania na ruch sieciowy lub blokadę. Ponownie, patrząc na konkretny wchan, powiem ci więcej.
Zobacz także Co to jest „kanał oczekiwania” procesu?
źródło
Uruchom
top
i spójrz na linię użycia procesora. Wysoki użytkownik% wskazuje, że jest związany z jednostką centralną. Wysoki% oczekiwania oznacza, że jest on związany z IO.źródło