Я рассматривал возможность настройки производительности среды и настроил ряд параметров для повышения производительности NFS, от простых вещей, таких как настройка параметров монтирования, до продвинутых, таких как настройка параметров sysctl, и даже рассматривал возможность включения больших кадров на сетевых адаптерах и брандмауэр.
Я запускаю NFS и memcached на одном сервере, и я чувствую, что мог бы улучшить производительность, убрав сетевые накладные расходы memcached.
Некоторая информация об окружающей среде в порядке сначала:
4 веб-сервера с балансировкой нагрузки в настройке dsr, подключенные к ASA 5510. 2 сервера mysql в репликации master/master. 1 сервер приложений/файлов с memcached и nfs.
Добавление дополнительных серверов не обсуждается.
Веб-серверы обслуживают свой контент с экспортированных монтирований NFS. Монтирование NFS на веб-серверах настроено на использование udp вместо tcp.
Веб-серверы запускают лак перед apache/php, лак настроен только на обслуживание изображений, css и javascript через отдельные поддомены для каждого.
Сайт загружается в течение 5 секунд в большинстве случаев, но иногда, даже ночью, когда трафик низкий, мы видим, что загрузка занимает больше времени. Иногда до 10 секунд. Конечно, это неплохо, но нет причин, по которым мы не сможем увидеть лучшую производительность. Все файлы обслуживаются по NFS. Кстати, я приобрел этого клиента недавно, после того, как их первоначальные технологии поменялись местами.
Я думал, что могу/должен сделать, поскольку сервер теперь оптимизирован для соединений NFS, так это настроить memcached для работы в режиме сокета unix, который отключает его сетевые функции, а затем поместить сокет unix в экспортированную файловую систему. Таким образом, веб-серверы по-прежнему могли подключаться к memcached, но это избавило бы от некоторых накладных расходов, потому что у меня есть монтирования NFS, использующие udp вместо tcp.