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

Это хорошее поведение?

Мой 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

веб-сайт быстрый и обрабатывает множество текущих подключений.

но кеш действительно странный ..

  1. Эта команда безопасна для производства?

  2. 2377 МБ кеш-памяти - это хорошо?

  3. Надо ли что-то менять?

Спасибо.

Кешированная строка, которую вы наблюдаете, - это очень хорошо.

Все упомянутые там данные должны быть прочитаны с диска без кеша. При использовании кеша результаты будут возвращены из ОЗУ.

В настоящее время Linux очень умен с кэшированием и буферизацией; не пытайтесь перехитрить его какими-нибудь случайными «советами» по копированию и вставке, которые можно найти в Интернете.

Ничего не меняйте, будьте счастливы, что у вас кэшировано почти 2,5 ГБ. Это очень помогает вашей производительности; удаление кешей с помощью эхо-линии на самом деле сильно снижает производительность! Кешированные данные будут немедленно освобождены, если они действительно понадобятся любому приложению, это не приведет к снижению производительности.

Распространенное заблуждение, что у вас должна быть ОЗУ. свободно. Вам нужно использовать как можно больше оперативной памяти - это самая быстрая подсистема памяти на вашем сервере.

Таким образом, ОС Linux довольно умна и начинает хранить часто используемые файлы / данные / информацию в ОЗУ, в буферах / кеше.

Когда приложению требуется оперативная память (например, больше потоков PHP), память, выделенная для диска / буферов, уменьшается в пользу приложений пользовательского пространства.

Так что на данный момент ваше использование памяти выглядит очень хорошо. Но также стоит иметь в виду, сколько памяти вы фактически выделяете (если ваш трафик увеличивается и потоки PHP увеличиваются, увеличивается количество подключений MySQL и т. Д.). Вы можете проверить это, запустив

cat /proc/meminfo | grep committed

Вы должны надеяться увидеть что-то подобное

commitLimit 3145728 
committed_AS 6291456

Обычно для сервера Magento «довольно безопасно» иметь выделенную память в два раза доступной памяти (из-за необходимости увеличивать лимиты памяти PHP для длительных процессов администрирования).

Если он хорошо работает в вашей конфигурации, он работает хорошо и ваша статистика удовлетворительна для вашего приложения (приложений), не играйте с ним.

Linux неплохо умеет поддерживать кеш самостоятельно.

Подождите, пока у вас не возникнут реальные проблемы, которые нужно исправить, а не создавать новые.

Канонические ссылки здесь для использования памяти, в которой преобладает кеш:

Кэшированные данные в памяти свободно (Вы можете рассматривать его как неиспользованный, и это не требует затрат на производительность - только выгода!), и в жизни есть несколько вещей, которые бесплатны. Когда вашим программам это понадобится, они это получат. Когда они этого не делают, недавно прочитанные данные с дисков будут храниться в памяти и использоваться для ответа на операции чтения, которые в противном случае должны были бы поступать с диска.