Ради изучения этого вопроса я почитал руководство по утитилам procps, а именно top и free.
У меня что-то сожрало память на нетбуке. Иногда сам по себе начинается дикий swapping с тормозами системы. Например, при просмотре видео в mplayer без фронт-енда.
Запуск free показал мало памяти, вывод команды будет ниже.
Запустил top, увидел, что Firefox сожрал 49,7% памяти. Все остальные программы съедают максимум 1%, кроме иксов и Konqueror (открыто несколько вкладок).
Нужно объяснить, почему я показываю два лога top. Сейчас Firefox закрылся, вероятно из-за ошибки сегментирования. Когда я делал top с запущенным Firefox, я ещё не знал о сортировке по занимаемой памяти по сочетанию клавиш Shift-M, а теперь знаю, но браузер уже не запущен. Поэтому я дам два вывода команды top: первый с Pidgin, Skype и Firefox и без сортировки по памяти, второй без этих программ, но с сортировкой.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
16722 zenitur 20 0 1673m 874m 15m S 43.4 49.8 2208:27 firefox
18972 zenitur 20 0 141m 44m 13m S 0.9 2.5 0:06.21 skype
16409 root 20 0 342m 97m 15m S 0.6 5.6 168:10.96 X
16887 zenitur 20 0 147m 7976 3264 R 0.1 0.4 0:38.06 konsole
4606 zenitur 20 0 597m 27m 8988 S 0.1 1.6 2:27.84 pidgin
16652 zenitur 20 0 281m 4732 1852 S 0.1 0.3 1:10.77 kded
1 root 20 0 3940 28 0 S 0.0 0.0 0:10.86 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:08.40 ksoftirqd/0
6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
7 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 cpuset
8 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper
9 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns
130 root 20 0 0 0 0 S 0.0 0.0 0:04.20 sync_supers
132 root 20 0 0 0 0 S 0.0 0.0 0:00.05 bdi-default
134 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd
287 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ata_sff
top - 01:07:12 up 12 days, 6:24, 1 user, load average: 0.07, 0.10, 0.15
Tasks: 125 total, 2 running, 123 sleeping, 0 stopped, 0 zombie
Cpu(s): 9.1%us, 0.3%sy, 0.0%ni, 90.6%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1798220k total, 1556644k used, 241576k free, 58216k buffers
Swap: 2097148k total, 114540k used, 1982608k free, 873100k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
16409 root 20 0 355m 152m 17m R 7.0 8.7 177:53.35 X
25983 zenitur 20 0 233m 60m 21m S 0.3 3.5 0:37.61 konqueror
16662 zenitur 20 0 161m 13m 5572 S 0.0 0.8 1:06.32 kdesktop
16664 zenitur 20 0 189m 12m 6124 S 0.0 0.7 3:25.07 kicker
16652 zenitur 20 0 283m 10m 6244 S 0.0 0.6 1:17.39 kded
16689 zenitur 20 0 183m 9968 3484 S 0.0 0.6 0:12.07 konqueror
16887 zenitur 20 0 148m 9864 3616 S 1.7 0.5 0:52.49 konsole
16679 zenitur 20 0 172m 9356 3452 S 0.0 0.5 0:02.51 konqueror
26123 zenitur 20 0 163m 7972 5676 S 0.0 0.4 0:00.08 kio_http
26127 zenitur 20 0 163m 7964 5676 S 0.0 0.4 0:00.05 kio_http
16682 zenitur 20 0 168m 7556 3452 S 0.0 0.4 0:01.67 konqueror
16660 zenitur 20 0 163m 6048 3384 S 0.0 0.3 1:50.63 kwin
26063 zenitur 20 0 156m 5536 4356 S 0.0 0.3 0:00.06 kio_http
26251 zenitur 20 0 27324 5532 4744 S 0.0 0.3 0:00.08 aspell
26041 zenitur 20 0 156m 5504 4324 S 0.0 0.3 0:00.04 kio_http
26064 zenitur 20 0 156m 5488 4312 S 0.0 0.3 0:00.04 kio_http
26093 zenitur 20 0 156m 5488 4312 S 0.0 0.3 0:00.04 kio_http
Вывод free теперь. 256 Мб свободно?! У меня же ничего не запущено!
zenitur@athlon_neo ~ $ free
total used free shared buffers cached
Mem: 1798220 1522324 275896 0 52832 858260
-/+ buffers/cache: 611232 1186988
Swap: 2097148 128524 1968624
Мой вопрос в следующем. Система тормозила, хотя Firefox занимал всего лишь 50% памяти - почему? Все остальные приложения занимали все понемногу, и далеко не гигабайт!
Теперь Firefox выключен - классно, ура! Можно делать всё что угодно. Но почему так мало свободной памяти? Так и должно быть? Мне кажется, что-то сожрало много-много памяти и не видно в процессах.
Возможно, это тоже может повлиять. Из-за бага в проприетарном драйвере ATi/AMD после некоторых полноэкранных игр (Braid, Heroes III) возникает следующая картина: видео, 602 Кб, скриншот, 187 Кб. Мне кажется, здесь возможна утечка памяти.