Мое предположение - то, что Вы в порядке: память используется кэшированием диска ядра Linux (дополнительную информацию см. в http://www.linuxatemyram.com/).
О Apache: В то время как каждому пользователю нужен экземпляр Apache, если Вы используете нерезьбовую версию Apache (как значение по умолчанию), он использует это только в течение короткого срока, в то время как единственная страница передается пользователю. После этого апачский процесс обработает следующий запрос, вероятно, другим пользователем. Таким образом, можно обработать много соединений с только относительно немногими апачскими процессами.
Править: Пример для вывода free:
total used free shared buffers cached
Mem: 498 434 64 0 194 77
-/+ buffers/cache: 162 336
Swap: 4102 0 4102
64 МБ, которые перечислены как свободные, являются объемом памяти, который не используется всегда. Но (почти) все буферы/кэш-память могут сразу использоваться ОС, если ей нужен он, таким образом, потенциальная доступная память - на самом деле почти 350 МБ вместо 64 МБ.
Centos будет использовать любую запасную RAM в качестве дискового кэша и буферов для ускорения вещей. Поскольку Вы получаете доступ к файлам, они будут кэшироваться в памяти. Кэш является все еще частью свободной памяти и будет брошен если при необходимости в другом месте системой. Смотрите здесь для получения дополнительной информации.
Путем посещения Магнитного хранилища mysql получает данные из диска и затем удерживает в кэше (RAM) для более быстрого извлечения. Это нормально.
512 МБ не очень. PHP в сочетании с предварительным ветвлением Apache, MPM означает потребление этого очень быстро.
На самом деле необходимо разделить общую RAM (512 МБ) на memory_limit
в /etc/php.ini
получить разумное число для Apache MaxClients
установка. Wiki Магнето говорит, что 64 МБ рекомендуются, но не могут быть достаточно. Принятие Вас идет с 64 МБ, который дает Вам 8 клиентов. Действительно, несколько меньше, поскольку Вы также работаете mysql
и некоторый другой материал в той же системе. Можно сойти с рук большее число, чем это, но в какой-то момент, система умрет.
Помните, что каждому запросу должен ответить один сервер перед ветвлением, не каждый посетитель. Если каждый запрос подается достаточно быстро, Вам, возможно, не понадобится столько серверов, сколько Вы думаете.
Holdddd onnnn секунда здесь. В документации системных требований для текущей версии говорится, что memory_limit должен составить по крайней мере 256 МБ, и они на самом деле просят 512 МБ. Это дает Вам 2 или 1 рабочего Apache, который не действительно надежен.
Так. Необходимо будет заново обдумать. Можно или бросить больше RAM в проблему (настоятельно рекомендованную), или использовать другой Apache MPM (может быть проблематичным с приложением PHP; я не знаю), или используйте lighttpd + fastcgi.
На самом деле Вы, вероятно, оказываетесь перед необходимостью получать больше RAM в любом случае — или иначе использовать совершенно другое приложение.
(BTW: Выключить yum-updatesd
, и замените его yum-cron
. У Вас должны быть автоматические обновления, но Вам не нужен демон, сидящий там в RAM целый день.)