Korzystam z serwera linux, który ma 128 GB pamięci i 24 rdzenie. Używam góry, aby zobaczyć, ile to jest używane. Jego wyniki są wklejane na końcu wpisu. Oto dwa pytania:
(1) Widzę, że każdy z uruchomionych procesów zajmuje bardzo mały procent pamięci (% MEM nie więcej niż 0,2%, a większość zaledwie 0,0%), ale jak prawie cała pamięć jest prawie używana, jak w czwartym wierszu wyniku ( „Mem: 130766620k łącznie, 130161072k używane, 605548k wolne, 919300k buforów”)? Suma wykorzystanego procentu pamięci we wszystkich procesach wydaje się mało prawdopodobna, aby osiągnąć prawie 100%, prawda?
(2) jak rozumieć średnią obciążenia w pierwszym wierszu („średnia obciążenia: 14.04, 14.02, 14.00”)?
Dziękuję i pozdrawiam!
Edytować:
Dzięki!
Bardzo lubię też słyszeć pewne przybliżone liczby oparte na używanym procencie pamięci, aby ustalić, czy serwer jest mocno obciążony, ponieważ kiedyś stałem się tym, który scramował serwer, nie rozumiejąc bieżącego obciążenia.
Czy swap jest prawie tak samo jak pamięć? Na przykład, gdy pamięć i zamiana są prawie tego samego rozmiaru, jeśli pamięć prawie się kończy, ale zamiana jest nadal w dużej mierze wolna, czy mogę po prostu wyświetlić ją tak, jakby użyty procent pamięci + wymiany wciąż nie był wysoki i uruchomić inne nowe procesy?
Jak weźmiesz pod uwagę wykorzystanie procesora lub pamięci (lub pamięci + wymiany)? Czy martwisz się, jeśli któryś z nich osiągnie zbyt wysoką wartość lub jedno i drugie?
Wyjście z góry :
$ top
do góry - 12:45:33 do 19 dni, 23:11, 18 użytkowników, średnia ładowanie: 14.04, 14.02, 14.00 Zadania: łącznie 484, 12 uruchomionych, 472 śpiących, 0 zatrzymanych, 0 zombie Cpu (s): 36,7% us, 19,7% sy, 0,0% ni, 43,6% id, 0,0% wa, 0,0% hi, 0,0% si, 0,0% st Mem: 130766620k łącznie, 130161072k używane, 605548k wolne, 919300k buforów Zamiana: łącznie 63111312 tys., Używane 500556 tys., 62610756 tys. Wolne, 124437752 tys PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND 6529 sanchez 18 -2 1075m 219m 13m S 100 0,2 13760: 23 MATLAB 13210 tymotka 18 -2 48336 37m 1216 R 100 0,0 3: 56,75 absurdalność 13888 tymotka 18 -2 48336 37m 1204 R 100 0,0 2: 4,89 absurd 14542 tymotka 18 -2 48336 37m 1196 R 100 0,0 1: 08.34 absurd 14544 tymotka 18 -2 2888 2076 400 R 100 0,0 1: 06.14 gromadzić Dane 6183 sanchez 18 -2 1133m 195m 13m S 100 0,2 13676: 04 MATLAB 6795 sanchez 18 -2 1079m 210m 13m S 100 0,2 13734: 26 MATLAB 10178 tymotka 18 -2 48336 37m 1204 R 100 0,0 11: 33,93 absurd 12438 tymotka 18 -2 48336 37m 1216 R 100 0,0 5: 38,17 absurd 13661 tymotka 18 -2 48336 37m 1216 R 100 0,0 2: 44,13 absurd 14098 tymotka 18 -2 48336 37m 1204 R 100 0,0 1: 58,31 absurd 14335 tymotka 18 -2 48336 37m 1196 R 100 0,0 1: 08.93 absurd 14765 tymotka 18 -2 48336 37m 1196 R 99 0,0 0: 32,57 absurd 13445 tymotka 18 -2 48336 37m 1216 R 99 0,0 3: 01,37 absurd 28990 root 20 0 0 0 0 S 2 0,0 65: 50,21 pdflush 12141 tim 18 -2 19380 1660 1024 R 1 0,0 0: 4,04 góra 1240 korzeń 15 -5 0 0 0 S 0 0,0 16: 07.11 kjournald 9019 root 20 0 296m 4460 2616 S 0 0,0 82: 19,51 kdm_greet 1 korzeń 20 0 4028 728 592 S 0 0,0 0: 03.11 init 2 root 15 -5 0 0 0 S 0 0,0 0: 00,00 kthreadd 3 root RT -5 0 0 0 S 0 0,0 0: 01.01 migracja / 0 4 root 15 -5 0 0 0 S 0 0,0 0: 08,13 ksoftirqd / 0 5 root RT -5 0 0 0 S 0 0,0 0: 00.00 watchdog / 0 6 korzeni RT -5 0 0 0 S 0 0,0 17: 27,31 migracja / 1 7 korzeni 15 -5 0 0 0 S 0 0,0 0: 01,21 ksoftirqd / 1 8 root RT -5 0 0 0 S 0 0,0 0: 00.00 watchdog / 1 9 root RT -5 0 0 0 S 0 0,0 10: 02,56 migracja / 2 10 root 15 -5 0 0 0 S 0 0,0 0: 00,34 ksoftirqd / 2 11 root RT -5 0 0 0 S 0 0,0 0: 00.00 watchdog / 2 12 korzeni RT -5 0 0 0 S 0 0,0 4: 29,53 migracja / 3 13 root 15 -5 0 0 0 S 0 0,0 0: 00,34 ksoftirqd / 3
źródło
Odpowiedzi:
Aby zobaczyć, ile pamięci aktualnie używasz, uruchom
free -m
. Zapewni dane wyjściowe takie jak:Wartość „użytego” górnego wiersza (1923) prawie zawsze będzie prawie równa wartości pamięci górnego wiersza (2012). Ponieważ Linux lubi używać dowolnej wolnej pamięci do buforowania bloków dysku (515).
Kluczową wartością użytą do sprawdzenia jest wartość użytego rzędu buforów / pamięci podręcznej (1316). Właśnie tyle miejsca zajmują obecnie Twoje aplikacje. Aby uzyskać najlepszą wydajność, liczba ta powinna być mniejsza niż całkowita pamięć (2012). Aby uniknąć błędów braku pamięci, musi być mniejsza niż całkowita pamięć (2012) i przestrzeń wymiany (3153).
Jeśli chcesz szybko sprawdzić, ile wolnej pamięci jest wolne, spójrz na wartość wolnej pamięci buforów / pamięci podręcznej (695). Jest to pamięć całkowita (2012) - faktycznie wykorzystana (1316). (2012 - 1316 = 696, a nie 695, będzie to po prostu problem z zaokrąglaniem)
Ten artykuł na temat średniego obciążenia używa ładnej analogii ruchu i jest najlepszy, jaki do tej pory znalazłem: Zrozumienie obciążenia procesora w systemie Linux - kiedy powinieneś się martwić? . W twoim przypadku, jak zauważyli ludzie:
Zatem przy średnim obciążeniu wynoszącym 14,00 i 24 rdzeniach serwer nie jest przeciążony.
źródło
Systemy uniksowe, w tym linux, zostały zaprojektowane w celu jak najbardziej efektywnego wykorzystania dostępnej pamięci RAM. Mówiąc bardzo ogólnie, istnieją 3 stany, w których każdy MB pamięci RAM może znajdować się:
Trzeci stan jest wykorzystywany tylko jako przestrzeń do rysowania i ma być przeznaczony do ponownego przypisania, gdy zajdzie taka potrzeba, tj. Całkowita dostępna pamięć dla programów jest naprawdę wolna + używana dla buforów. W związku z tym tak naprawdę nie zobaczysz, że przydzielone miejsce w buforze jest wyświetlane jako przypisane do określonego procesu.
Twoje średnie pytanie obciążenia jest nieco bardziej interesujące, ponieważ można je łatwo zinterpretować. Pełna historia znajduje się w tym linuksowym artykule . Najlepszym podsumowaniem jest bezpośredni cytat z artykułu,
Oznacza to, że średnią wartość obciążenia można traktować jako (liczbę uruchomionych procesów) + (liczbę procesów oczekujących na We / Wy). Pamiętając, że w danym momencie możesz mieć liczbę wykonanych procesów $ CORE, powiedziałbym, że twoje średnie obciążenie 14 jest dość niskie.
źródło
Ze strony podręcznika
sar
:Ze strony podręcznika
uptime
:źródło
top
zasadzie bezużyteczna, generalnie utrzymując większość pamięci maszyny przydzielonej do różnych zastosowań, gdy nie jest to wymagane przez proces użytkownika.źródło
Średnia obciążenia to świetna rzecz. Pozwala zrozumieć, co dzieje się poza 100% wykorzystaniem, w zasadzie: http://en.wikipedia.org/wiki/Load_%28computing%29
źródło