Я только что попытался выполнить репликацию настройки Gluster между двумя веб-серверами. Производительность была очень низкой, простые операции с файлами PHP, такие как file_exists и is_readable, занимали 15–30 мс каждая. Требование require_once заняло 1,1 секунды.
Как и в большинстве сетевых настроек, записи происходят очень редко, а чтения - очень часто. Серверы состоят из 2xquad-ядер Xeon, 8-гигабайтной оперативной памяти и дисков RAID 1. Между ними есть выделенная гигабитная сеть. Это не самый быстрый способ установить GlusterFS, но он не должен быть таким медленным.
Как лучше всего исправить ситуацию? Документация по настройке GlusterFS отсутствует, и определить Can, где есть узкие места, очень сложно.
Я видел несколько упоминаний о том, что установка файлов, которые не реплицируются, может улучшить скорость, но это снижает надежность вдвое, и я хочу повысить надежность (два веб-сервера против одного), а не уменьшить ее. Есть ли какая-то конкретная конфигурация, включающая кеширование и т. Д. Для такой нагрузки? Может ли быть кэш для проверки новой копии файла на другом сервере, чтобы как можно чаще файлы обслуживались мгновенно с локального жесткого диска?
Вы можете попробовать смонтировать gluster через NFS, и производительность будет намного лучше из-за кеширования, выполняемого клиентом NFS.
В качестве альтернативы вы также можете включить предварительную выборку для небольших файлов и увеличить кэш, используя параметр настройки громкости gluster (используйте справку gluster, чтобы просмотреть все параметры).
Если у вас не так много работы, возможно, rsyncing каталогов будет лучшим вариантом для вашего сценария.