memcached через NFS?

Я рассматривал возможность настройки производительности среды и настроил ряд параметров для повышения производительности 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.


person Speeddymon    schedule 05.06.2012    source источник
comment
Интересная идея, но я сомневаюсь, что вы вообще что-то выиграете. Доступ к удаленному сокету unix через UDP может привести к дополнительным накладным расходам по сравнению с обычным TCP, поскольку на стороне сервера NFS вам придется иметь дело с RPC.   -  person Daniel Voina    schedule 05.06.2012


Ответы (1)


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

person hobbs    schedule 05.06.2012