2016-07-05 3 views
0

У меня есть приложение php symfony на одном сервере и масштабировано по горизонтали с докеры на разных узлах. Поэтому здесь я хотел использовать кластерную файловую систему для кеша и журналов для ее централизации и установки на контейнеры докеров.Распределенная файловая система для кэша приложений и журналов

Я достиг этого с помощью glusterfs и тестировался с одним пользователем, который хорошо работал. Но по мере увеличения нагрузки приложение уменьшилось, и время отклика увеличилось, а иногда пользователи получили белый экран. Я удалил glusterfs и использовал локальную файловую систему, которая повысила производительность приложения и не заметила увеличения времени отклика при большой нагрузке. Из этого я полагаю, что glusterfs не является хорошим выбором в качестве кластерной файловой системы для хранения кеша и журналов.

Вопрос в том, есть ли какая-либо другая файловая система, которая понижает производительность приложения?

спасибо.

ответ

1

Помещение кэш-памяти Symfony и вход в общий FS - это действительно плохая идея, как вы обнаружили. Местная FS - это путь туда. Хотя если вы перейдете к многосерверной конфигурации, несколько советов:

  • убедитесь, что сеансы хранятся в другом месте, memcached или Redis - это путь к ИМО. Файловые сеансы являются узким местом в PHP
  • В худшем случае, если вам нужно придерживаться сеансов файлов, сделайте ваш сервер сбалансированным по IP («сеанс липкий» в nginx). В противном случае пользователи будут отключены.
  • Перемещение из файлов журналов в централизованный регистратор, в идеале что-то над UDP (не блокирование)
  • некоторые части кеша Symfony могут быть перенесены из FS, для улучшения событий: Doctrine может использовать различный вид кеша (memcache снова, APCu ...), основной обратный прокси-сервер Symfony можно заменить лаком.

Я не вижу больше, чтобы сказать, что-то еще, чтобы спросить?

Смежные вопросы