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

Чрезмерное использование памяти на Go Daddy VPS

У меня есть Go Daddy Linux VPS, хостинг Java-сервера и еще кое-что. Очевидно, у нас заканчивается память:

[user@xxx ~]$ free -m
total       used       free     shared    buffers     cached
Mem:          4096       4090          5          0          0          0
-/+ buffers/cache:       4090          5
Swap:            0          0          0
[user@xxx ~]$

Но вот самое интересное. Я не могу найти лишнюю память с «ps» - все перечисленные процессы имеют «разумное» использование памяти (менее 2%), но системе все еще не хватает памяти.

Попытка увеличить доступную виртуальную машину путем монтирования свопа приводит к ошибке («Операция запрещена»). Я обнаружил, что это ограничение OpenVZ - только хост должен переключаться на диски.

Вывод "vmstat" не очень полезен:

[user@xxx ~]$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
0  0      0   5548      0      0    0    0    22   105    0   15  0  1 99  0  0
[user@xxx ~]$

Есть идеи, как я могу найти точную причину нехватки свободной памяти, не убивая вслепую службы и не дожидаясь повторения проблемы? Заранее спасибо!

Были ли у вас ошибки из-за нехватки памяти в конкретном приложении? Или у вас проблемы с производительностью? Что конкретно заставляет вас думать, что у вас не хватает памяти (кроме команды 'free -m').

Первое, что нужно искать, - это МНОГО процессов, использующих небольшой объем памяти. Если у вас есть 100 процессов, использующих только 128 МБ памяти, вам, например, не хватит памяти.

Это нормально, когда в Linux используется почти 100% вашей памяти. Однако я недостаточно знаю, как это работает у вашего конкретного поставщика VPS, чтобы знать, считается ли ваше использование нормальным. С моим собственным VPS-провайдером у меня свободно 24 МБ / 512 м, и он отлично работает. При необходимости он выгружает почти 400 МБ кэшированных данных.