Система использует всю память даже после модернизации оборудования

Ранее, у меня был сервер RAM на 4 ГБ с Linode. Несколько раз я действительно "освобождал-m" команда для проверки доступной памяти. Большинство времен это показало свободных меньше чем 200 Мбит. Основные процессы, которые я выполняю непрерывно на сервере:

1) Сервер Apache, служащий приблизительно 1 000 хитов в день. 2) Сервер Tomcat, меньше чем 100 хитов 3) Solr 4) Три программы Java, которые не должны использовать больше чем 2 ГБ RAM.

(В процессах Java я не использую-Xmx параметра),

Так, я переместился в другой выделенный узел. Но здесь я получаю тот же вид проблемы. Мое solr быть уничтоженным, если я пытаюсь запустить какую-либо дополнительную программу Java (которым не нужно больше 512 Мбит). Даже, иногда, это автоматически "Уничтожается", возможно, когда другие процессы Java упорно работают.

Вот вывод, я вошел в /var/log/kern.log, когда я пытался знать причину, почему solr "Уничтожается" без любой причины.

Dec 14 20:25:03 xyzserver kernel: [4680101.245182] Out of memory: Kill process 7481 (java) score 184 or sacrifice child
Dec 14 20:25:03 xyzserver kernel: [4680101.246851] Killed process 7481 (java) total-vm:22841896kB, anon-rss:987160kB, file-rss:0kB

Я не уверен, почему я всегда получаю меньше чем 200 Мбит как свободную память.

Свободные-m производят: root@xyzserver:/home# свободный-m

             total       used       free     shared    buffers     cached
Mem:          7963       7805        157         24          1         57
-/+ buffers/cache:       7746        216
Swap:         3813       2420       1393

Python ps_mem.py вывод

root@xyzserver:/home# python ps_mem.py
 Private  +   Shared  =  RAM used   Program

  4.0 KiB +   9.5 KiB =  13.5 KiB   acpid
  4.0 KiB +  20.5 KiB =  24.5 KiB   upstart-socket-bridge
  4.0 KiB +  21.0 KiB =  25.0 KiB   upstart-file-bridge
  4.0 KiB +  24.5 KiB =  28.5 KiB   atd
  4.0 KiB +  25.0 KiB =  29.0 KiB   upstart-udev-bridge
  4.0 KiB +  27.5 KiB =  31.5 KiB   vsftpd
  4.0 KiB +  37.5 KiB =  41.5 KiB   init
  4.0 KiB +  44.5 KiB =  48.5 KiB   dbus-daemon
  4.0 KiB +  47.5 KiB =  51.5 KiB   systemd-logind
  4.0 KiB +  51.5 KiB =  55.5 KiB   systemd-udevd
 24.0 KiB + 117.0 KiB = 141.0 KiB   getty (6)
104.0 KiB +  48.5 KiB = 152.5 KiB   flock (5)
120.0 KiB +  49.5 KiB = 169.5 KiB   sh (5)
156.0 KiB +  41.0 KiB = 197.0 KiB   irqbalance
264.0 KiB + 183.5 KiB = 447.5 KiB   sshd (2)
480.0 KiB +  46.5 KiB = 526.5 KiB   rsyslogd
524.0 KiB + 123.0 KiB = 647.0 KiB   screen (4)
384.0 KiB + 369.0 KiB = 753.0 KiB   cron (6)
840.0 KiB + 123.0 KiB = 963.0 KiB   bash (5)
 73.0 MiB + 138.0 KiB =  73.2 MiB   mysqld
 58.1 MiB +  27.4 MiB =  85.5 MiB   apache2 (31)
  3.2 GiB +   3.0 MiB =   3.2 GiB   java (7)
---------------------------------
                          3.4 GiB
=================================

кошка/proc/meminfo

root@xyzserver:/home# cat /proc/meminfo
MemTotal:        8154636 kB
MemFree:          180992 kB
Buffers:             692 kB
Cached:            36560 kB
SwapCached:       142536 kB
Active:          2775768 kB
Inactive:        1070008 kB
Active(anon):    2765376 kB
Inactive(anon):  1059320 kB
Active(file):      10392 kB
Inactive(file):    10688 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       3905532 kB
SwapFree:         613012 kB
Dirty:                 0 kB
Writeback:          1916 kB
AnonPages:       3667288 kB
Mapped:            28880 kB
Shmem:             15796 kB
Slab:              59552 kB
SReclaimable:      22052 kB
SUnreclaim:        37500 kB
KernelStack:        3592 kB
PageTables:        42956 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     7982848 kB
Committed_AS:    8087572 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      281716 kB
VmallocChunk:   34359421140 kB
HardwareCorrupted:     0 kB
AnonHugePages:     14336 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       55572 kB
DirectMap2M:     8310784 kB

Как я вижу, ps_mem.py показывает меньше чем 4 ГБ. Почему свободный-m показывает всю использованную память. Как я управляю этим поведением. По-видимому, я не использую всю память. Как я могу сделать это? Я должен изменить память подкачки?

0
задан 15 December 2014 в 20:43

2 ответа

Не делайте ничто : ядро Linux использует как можно больше памяти вместо того, чтобы позволить ему простаивать, ничего не делая путем выделения свободной памяти кэшу.

Вы можете управлять кэшем, но выполнение так сделало бы Вашу систему , работают хуже , как весь доступ к диску был бы на самом деле быть доступ к диску вместо кэшируемого доступа к диску.

(на самом деле необходимо было переместиться в сервер, содержащий еще больше памяти, поскольку Вы столкновение с подкачкой)

, Вот моя система:

free -m
             total       used       free     shared    buffers     cached
Mem:          3886       3777        109        256         24       2572
-/+ buffers/cache:       1180       2705
Swap:         9755          0       9755

Также очень низкий свободный, но использование тонны памяти для кэша и когда для приложений будет нужна память, она будет выпущена от кэша.

0
ответ дан 3 August 2019 в 22:53

Сервер Apache, служащий приблизительно 1 000 хитов в день

, Вы всегда используете каноны для стрельбы в птиц? Тысяча хитов в день? Серьезно? Почему Вы не используете более взвешенное светом решение затем апачи монстра?

, По крайней мере, настраивают Вашу конфигурацию Apache, иначе неудивительно, что у Вас заканчивается память. Мое предположение - то, что апач может получить несколько 100K ударов, способ, которым это - установка. Но обеспечить так соединения, это просто должно поднять большую часть поршня.

На вашем месте я угробил бы апачский completly и взял бы Lighttpd для лучшего распределения памяти.

0
ответ дан 3 August 2019 в 22:53

Другие вопросы по тегам:

Похожие вопросы: