Свежая установка Debian Squeeze (6) - очень высокое использование оперативной памяти
Мы подготовили новый сервер и испытываем интенсивное использование оперативной памяти без информации об использовании ни в htop / top, ни в скрипте памяти python ( http://www.pixelbeat.org/scripts/ps_mem.py), Вот вывод из свободного -m:
total used free shared buffers cached
Mem: 7195 1347 5848 0 3 28
-/+ buffers/cache: 1315 5879
Swap: 3813 0 3813
И сверху, отсортировано по использованию памяти:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1586 root 20 0 200m 14m 1836 S 0 0.2 0:00.75 xend
1585 root 20 0 95892 9.9m 832 S 0 0.1 0:00.00 xend
1855 root 20 0 51728 2996 2368 S 0 0.0 0:00.00 sshd
1822 ntp 20 0 38332 2176 1596 S 0 0.0 0:00.03 ntpd
1858 psadmin 20 0 17728 1932 1436 S 0 0.0 0:00.00 bash
1071 root 20 0 52416 1852 1032 S 0 0.0 0:00.02 rsyslogd
1857 psadmin 20 0 51880 1396 756 S 0 0.0 0:00.00 sshd
1866 psadmin 20 0 19064 1364 1000 R 0 0.0 0:00.04 top
1564 root 20 0 49168 1140 592 S 0 0.0 0:00.00 sshd (etc)
И вышеупомянутый скрипт на python, который сообщает, какие приложения используют что:
Private + Shared = RAM used Program
180.0 KiB + 71.5 KiB = 251.5 KiB xenconsoled
228.0 KiB + 32.0 KiB = 260.0 KiB acpid
204.0 KiB + 58.0 KiB = 262.0 KiB init
252.0 KiB + 75.5 KiB = 327.5 KiB cron
332.0 KiB + 44.0 KiB = 376.0 KiB dbus-daemon
380.0 KiB + 53.5 KiB = 433.5 KiB xenstored
556.0 KiB + 138.0 KiB = 694.0 KiB sudo
612.0 KiB + 255.0 KiB = 867.0 KiB getty (6)
604.0 KiB + 582.0 KiB = 1.2 MiB udevd (3)
1.1 MiB + 103.5 KiB = 1.2 MiB rsyslogd
956.0 KiB + 267.5 KiB = 1.2 MiB ntpd
1.2 MiB + 73.0 KiB = 1.3 MiB bash
1.5 MiB + 1.3 MiB = 2.8 MiB sshd (3)
16.2 MiB + 3.8 MiB = 20.0 MiB xend (2)
---------------------------------
31.0 MiB
=================================
Private + Shared = RAM used Program
Итак, два вопроса на самом деле:
1) Для чего предназначена эта RAM?
2) Почему я вижу только 7195 МБ ОЗУ из установленных 8 ГБ?
Это на Dell Poweredge R210 с дисками SAS в RAID0.
Любая помощь с этим будет очень признателен!
4 ответа
Выясняется, что это была та же проблема, что и здесь: Debian Squeeze и доступная память (1GB отсутствует), ядро Xen делает ~1GB 'отсутствующим', показанным в dmesg
,
Обновленный вопрос со спецификой: ядро Xen в Debian Squeeze делает память 1 ГБ "отсутствующей"
ТБХ, ИДК.
http://www.mjmwired.net/kernel/Documentation/IO-mapping.txt
127 NOTE NOTE NOTE! The above is only one part of the whole equation. The above
128 only talks about "real memory", that is, CPU memory (RAM).
129
130 There is a completely different type of memory too, and that's the "shared
131 memory" on the PCI or ISA bus. That's generally not RAM (although in the case
132 of a video graphics card it can be normal DRAM that is just used for a frame
133 buffer), but can be things like a packet buffer in a network card etc.
134
135 This memory is called "PCI memory" or "shared memory" or "IO memory" or
136 whatever, and there is only one way to access it: the readb/writeb and
137 related functions. You should never take the address of such memory, because
138 there is really nothing you can do with such an address: it's not
139 conceptually in the same memory space as "real memory" at all, so you cannot
140 just dereference a pointer. (Sadly, on x86 it _is_ in the same memory space,
141 so on x86 it actually works to just deference a pointer, but it's not
142 portable).
Попробуйте полностью отключить фреймбуфер. посмотреть, если это вообще что-то делает.
И если это было недостаточно загадочным, вы можете пойти дальше и погрузиться в:
Я вижу, что xend и xenconsoled запущены, и вы использовали слово "подготовка" при обсуждении развертывания, поэтому я предполагаю, что это виртуализированная система, работающая под Xen?
Это ваша проблема, хотя это не большая проблема, просто то, как она работает. dom0 использует недостающую оперативную память. Дополнительное использование ОЗУ, скорее всего, является драйвером, который пытается сохранить ресурсы. Здесь есть несколько дополнительных объяснений и некоторые возможные исправления здесь.
Вопрос 1
Не паникуйте!
Он используется для буфера файлового кэша. Linux будет постоянно кэшировать файлы, которые он читает с жесткого диска, чтобы улучшить производительность. Не о чем беспокоиться, как только память понадобится для чего-то другого, она освободит кэш и сделает память доступной для запущенных процессов. Это на самом деле говорит вам об этом, когда вы запускаете free -m:
- общее количество используемой памяти - 1347
- память, используемая для ваших буферов / кеша, составляет 1315
По сути, он делает то, что должен делать.
вопрос 2
Это может быть связано с тем, что видеокарта использует память, проверьте свой BIOS, чтобы увидеть, есть ли параметр, который выделяет определенный объем памяти для GPU.