Назад | Перейти на главную страницу

Установка Fresh Debian Squeeze (6) - Очень высокое использование оперативной памяти

У нас есть подготовленный новый сервер, и мы испытываем высокую нагрузку на оперативную память без информации об использовании ни в htop / top, ни в найденном скрипте памяти python (http://www.pixelbeat.org/scripts/ps_mem.py). Вот результат команды free -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) На что собирается эта оперативная память?

2) Почему я вижу только 7195 МБ ОЗУ из установленных 8 ГБ?

Это на Dell Poweredge R210 с дисками SAS в RAID0.

Любая помощь с этим будет очень признательна!

Выясняется, что это была та же проблема, что и здесь: Debian Squeeze и доступная память (отсутствует 1 ГБ), ядро ​​Xen делает ~ 1 ГБ "отсутствующим", как показано на dmesg.

Обновленный вопрос с особенностями: Ядро Xen в Debian Squeeze делает 1 ГБ памяти 'отсутствующим'

tbh, идк.

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). 

- попробуйте полностью отключить фреймбуфер. посмотреть, делает ли это что-нибудь вообще.

И если это было недостаточно загадочно, вы можете продолжить и погрузиться в:

http://www.tldp.org/LDP/tlk/mm/memory.html

Вопрос 1

Не паникуйте!

Он используется для буфера вашего файлового кеша. Linux будет постоянно кэшировать файлы, которые он читает с жесткого диска, для повышения производительности. Не о чем беспокоиться, как только память потребуется для чего-то еще, он сбросит кеш и сделает память доступной для запущенных процессов. На самом деле он говорит вам об этом, когда вы запускаете free -m:

  • общий объем используемой памяти составляет 1347
  • память, используемая для ваших буферов / кеша, составляет 1315

По сути, он делает то, что должен делать.

вопрос 2

Это может быть связано с тем, что видеокарта использует память, проверьте свою BIOS, чтобы узнать, есть ли параметр, который выделяет определенный объем памяти для графического процессора.

Я вижу, что xend и xenconsoled работают, и вы использовали слово «подготовка» при обсуждении развертывания, поэтому я предполагаю, что это виртуализированная система, работающая под Xen?

Это ваша проблема, хотя это не большая проблема, просто то, как это работает. dom0 использует недостающую оперативную память. Дополнительное использование ОЗУ, скорее всего, пытается сберечь ресурсы драйвером балуна. Доступно дополнительное объяснение Вот, Вот, и некоторые возможные исправления Вот.