Ubuntu ostatnio mnie zawiesza. Myślę, że to dlatego, że zabrakło pamięci, więc uruchomiłem free -m
polecenie i stwierdziłem, że moje użycie pamięci było naprawdę duże. Pobiegłem top
więc znaleźć winowajcę, ale wyświetlane procesy zużywały mniej niż 1,5% pamięci. Skąd mam wiedzieć, który program powoduje awarię / brak pamięci w Ubuntu? Poniżej znajduje się wynik:
shafee@shafee-pc:~$ free -m
total used free shared buffers cached
Mem: 3824 3714 110 0 978 1954
-/+ buffers/cache: 780 3044
Swap: 99 0 99
shafee@shafee-pc:~$ top
top - 02:12:14 up 1:24, 2 users, load average: 0.16, 0.42, 1.49
Tasks: 182 total, 1 running, 181 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.9%us, 1.9%sy, 0.3%ni, 79.3%id, 15.5%wa, 0.0%hi, 0.2%si, 0.0%st
Mem: 3916708k total, 3803848k used, 112860k free, 1002308k buffers
Swap: 102396k total, 0k used, 102396k free, 2001852k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4200 root 20 0 289m 53m 38m S 2 1.4 1:06.45 Xorg
5590 shafee 20 0 19348 1368 956 R 2 0.0 0:00.01 top
1 root 20 0 24124 2136 1264 S 0 0.1 0:02.05 init
2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0 0.0 0:24.23 ksoftirqd/0
6 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/0
7 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/1
9 root 20 0 0 0 0 S 0 0.0 0:00.11 ksoftirqd/1
11 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/2
13 root 20 0 0 0 0 S 0 0.0 0:03.89 ksoftirqd/2
14 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/3
16 root 20 0 0 0 0 S 0 0.0 0:00.16 ksoftirqd/3
17 root 0 -20 0 0 0 S 0 0.0 0:00.00 cpuset
18 root 0 -20 0 0 0 S 0 0.0 0:00.00 khelper
19 root 0 -20 0 0 0 S 0 0.0 0:00.00 netns
21 root 20 0 0 0 0 S 0 0.0 0:00.01 sync_supers
shafee@shafee-pc:~$
Czy to normalne, że mam 110 MB wolnej pamięci i czy mój problem dotyczy czegoś innego?
memory-usage
shxfee
źródło
źródło
Odpowiedzi:
Odczytujesz wynik
free
niepoprawnie. Jądro Linuksa zarządza własną pamięcią, z kolei alokując więcej, niż faktycznie potrzebuje - tak więc twoja prawdziwa ilość „wolnej pamięci” znajduje3044
się w kolumnie „wolnej”+/- Buffers/cache
linii, dzięki czemu zużywa się tylko 780 MB.Domyślnie
top
sortuje się według zużycia procesora. Możesz nacisnąć Shift+, Maby posortować według procentu zajętej pamięci - co daje lepsze pojęcie o tym, jakie oprogramowanie wykorzystuje pamięć przydzieloną do jądra.A na górze z posortowaną pamięcią:
Wreszcie, aby pomóc Ci zdiagnozować, jakie jest rzeczywiste oprogramowanie, spróbuj przekazać
-c
flagę na górę:top -c
ponieważ da ci to pełną ścieżkę, nazwę i parametry uruchomionego polecenia.źródło
Możesz użyć następującego skryptu, aby zobaczyć całkowite wykorzystanie pamięci przez poszczególne aplikacje w systemie GNU Linux
http://www.zyxware.com/articles/4446/show-total-memory-usage-by-each-application-in-your-ubuntu-or-any-gnu-linux-system
źródło
Możesz uruchomić aplikację gnome-system-monitor Najlepiej jest dowiedzieć się, ile pamięci RAM zużywa aplikacja, a także ile procesora. Możesz zmienić priorytet procesu, aby działał jeszcze szybciej, na przykład jeśli chcesz przekonwertować wideo itp.
źródło
htop
która jest ładniejszą wersją topu. Naciśnij F6, aby posortować według np. Użycia procesora lub pamięci RAM.W Kubuntu po prostu naciskam Ctrl- Esca następnie sortuję rzeczy według pola zainteresowania: Pamięć, CPU, ...
źródło
To dobre pytanie, ale informacje pokazują, że jest dużo dostępnej pamięci. Powinieneś jednak monitorować zużycie pamięci.
Moim ulubionym monitorem systemu
conky
jest część pamięci:Łączna linia pamięci pokazuje, że używane jest 2,5 GiB z 7,4 GiB.
Szczegółowa linia pamięci pokazuje:
Web Content
zużywa 7% pamięci. To jest podprogram Firefox.Firefox
sam zużywa 7% pamięciffmpeg
zużywa 3% pamięci. To jest.gif
rejestratorpeek
wideo, który oglądamy.Conky jest wysoce konfigurowalny, a pulpit każdego wygląda inaczej. Możesz google
conky
i uzyskać 787 tysięcy wyświetleń.źródło