У меня есть vps с CentOS 5 (32 бит), и у него 256 МБ оперативной памяти, хотя для меня этого мало. В режиме ожидания с двумя активными ssh-подключениями и запущенным httpd он использует около 40 МБ оперативной памяти, но как только я запускаю MySQL, он выстреливает до 220 МБ! Есть ли способ оптимизировать использование оперативной памяти? Я только немного поработал над ним.
Ура :)
Во-первых, как вы показываете количество свободной оперативной памяти? Если это делается с помощью команды "free", обратите внимание, что вам нужно смотреть на вторую строку в разделе "free", а не на первую (подробнее). Например:
total used free shared buffers cached
Mem: 8191172 8059600 131572 0 169792 6648500
-/+ buffers/cache: 1241308 6949864
Swap: 0 0 0
В моем случае у меня 8 ГБ ОЗУ, но почти 7 ГБ из них находятся в буферах + кеш, так что моя истинная свободная память составляет 6,9 ГБ вместо 131 МБ в первом столбце под заголовком «бесплатно».
Но, как вы говорите, 256 МБ ОЗУ - это немного. Вы говорите: «Мне достаточно», но если у вас заканчивается память с запущенными приложениями, которые вы хотите, возможно, вам нужно пересмотреть, сколько вам действительно нужно.
Тем не менее, я думаю, вы, вероятно, жестяная банка лучше контролировать использование памяти. Сначала убедитесь, что вы смотрите на правильные числа (как упоминалось выше). У меня есть демон MySQL, работающий на одной из моих машин, который регулярно, но не интенсивно используется, и, похоже, использует 30 МБ резидентной памяти, как показано ps awwlx | grep mysql
. Однако он использует еще 160 МБ виртуальных ресурсов, так что это может быть довольно сложно.
Вы можете попробовать изменить настройки в my.conf
файл для уменьшения количества кешей и прочего, если вы действительно хотите попытаться сократить размер использования. Вот хороший обсуждение параметров памяти mysql.