Мой centos 5.7 работает под управлением Magento. 4 ГБ оперативной памяти и 4 ядра. Nginx + spwan-fcgi + memcached (Лучшая производительность, если вы спросите меня).
Теперь меня немного беспокоит использование памяти.
[root@adikastyle shipment]# free -m
total used free shared buffers cached
Mem: 3948 3712 236 0 224 **2377**
-/+ buffers/cache: 1109 2839
Swap: 10975 0 10975
Я видел на нескольких форумах эту команду:
# sync; echo 3 > /proc/sys/vm/drop_caches
веб-сайт быстрый и обрабатывает множество текущих подключений.
но кеш действительно странный ..
Эта команда безопасна для производства?
2377 МБ кеш-памяти - это хорошо?
Надо ли что-то менять?
Спасибо.
Кешированная строка, которую вы наблюдаете, - это очень хорошо.
Все упомянутые там данные должны быть прочитаны с диска без кеша. При использовании кеша результаты будут возвращены из ОЗУ.
В настоящее время Linux очень умен с кэшированием и буферизацией; не пытайтесь перехитрить его какими-нибудь случайными «советами» по копированию и вставке, которые можно найти в Интернете.
Ничего не меняйте, будьте счастливы, что у вас кэшировано почти 2,5 ГБ. Это очень помогает вашей производительности; удаление кешей с помощью эхо-линии на самом деле сильно снижает производительность! Кешированные данные будут немедленно освобождены, если они действительно понадобятся любому приложению, это не приведет к снижению производительности.
Распространенное заблуждение, что у вас должна быть ОЗУ. свободно. Вам нужно использовать как можно больше оперативной памяти - это самая быстрая подсистема памяти на вашем сервере.
Таким образом, ОС Linux довольно умна и начинает хранить часто используемые файлы / данные / информацию в ОЗУ, в буферах / кеше.
Когда приложению требуется оперативная память (например, больше потоков PHP), память, выделенная для диска / буферов, уменьшается в пользу приложений пользовательского пространства.
Так что на данный момент ваше использование памяти выглядит очень хорошо. Но также стоит иметь в виду, сколько памяти вы фактически выделяете (если ваш трафик увеличивается и потоки PHP увеличиваются, увеличивается количество подключений MySQL и т. Д.). Вы можете проверить это, запустив
cat /proc/meminfo | grep committed
Вы должны надеяться увидеть что-то подобное
commitLimit 3145728
committed_AS 6291456
Обычно для сервера Magento «довольно безопасно» иметь выделенную память в два раза доступной памяти (из-за необходимости увеличивать лимиты памяти PHP для длительных процессов администрирования).
Если он хорошо работает в вашей конфигурации, он работает хорошо и ваша статистика удовлетворительна для вашего приложения (приложений), не играйте с ним.
Linux неплохо умеет поддерживать кеш самостоятельно.
Подождите, пока у вас не возникнут реальные проблемы, которые нужно исправить, а не создавать новые.
Канонические ссылки здесь для использования памяти, в которой преобладает кеш:
Кэшированные данные в памяти свободно (Вы можете рассматривать его как неиспользованный, и это не требует затрат на производительность - только выгода!), и в жизни есть несколько вещей, которые бесплатны. Когда вашим программам это понадобится, они это получат. Когда они этого не делают, недавно прочитанные данные с дисков будут храниться в памяти и использоваться для ответа на операции чтения, которые в противном случае должны были бы поступать с диска.