Jak interpretować polecenie `top` systemu Linux

1

Używam skryptu R i jest to naprawdę długa pętla.

Oto zrzut ekranu polecenia „top”. Widać, że mówi, że R używa 100% procesora, ale w górnej linii mówi o 4,2% wykorzystaniu procesów użytkownika. Co to znaczy? Czy to oznacza, że ​​procesor ma wiele rdzeni i używam tylko jednego?

enter image description here

masfenix
źródło
Uważam, że oznacza to, że gdy „top” był wykonywany, wykorzystywał 4,2% czasu procesora, a gdy wyświetlał programy, pierwsza linia miała 100% czasu procesora. Jeśli zsumujesz czas procesora, w pierwszych 4 liniach jest 100,9%.
LDC3

Odpowiedzi:

0

Po pierwsze, tak - jeśli masz system wielordzeniowy, możesz mieć wiele procesów na 100% (lista procesów pokazuje wykorzystanie teoretycznego pojedynczego rdzenia) lub dla procesów wielowątkowych możesz mieć pojedynczy proces powyżej 100%. Całkowite wykorzystanie procesora może wynosić 25%, 50% itd. - ponieważ domyślnym pierwszym ustawieniem jest to, że pierwsze dane procesora będą agregatem wszystkich procesorów w systemie. Otrzymasz lepszy widok, jeśli naciśniesz 1 z top running - rozdzieli każdy procesor.

Mając to na uwadze, istotne są także segmenty us (er), sy (stem), ni (ce) i id (le). Program R nie wydaje się uderzać w procesor w pętli, więc procesor znajduje się głównie w bezczynnym wiadrze. Nie jestem zbyt dobrze zaznajomiony z R - możesz dodać trochę debugowania, aby zobaczyć, na co czeka, jeśli możesz zoptymalizować go, aby lepiej wykorzystać procesor (zakładając, że chcesz, aby był związany z CPU). Podobnie możesz mieć proces uderzający w dysk i mający niski procent użytkownika, ale wysoką wartość Wa (it) podczas oczekiwania na dane strony do / z dysku.

Gdyby R ciągle kręcił się w pętli, wykonując obliczenia / sortowanie lub podobne, powodowałoby to całkowite przesunięcie wykorzystania procesora do wiadra użytkownika (lub, jeśli miło, proces zmieniłby się w ładną łyżkę). Wiadro systemowe może wyświetlać przyrost, jeśli robisz duże skanowanie i sortowanie w pamięci (chociaż wtedy niekoniecznie będzie przypisane do procesu na liście). W tej chwili wygląda na to, że twój system jest lekko załadowany, uruchamiając pętlę prądową.

Adam C
źródło
Spojrzę na mój skrypt R. R nie jest zbyt przyjazny dla wielu rdzeni, ale moja pętla for była ciężka w obliczeniach. Spróbuję ponownie przeanalizować mój skrypt i zrozumieć liczby. Dzięki.
masfenix