Я думаю об использовании нескольких веб-серверов с балансировщиком нагрузки в большой установке WP. База данных будет на отдельном сервере, и это самая простая часть. Сложнее файлы в blogs.dir и, в меньшей степени, папки тем и плагинов.
Поэтому я планирую использовать отдельный сервер NFS либо для всего wp_content, либо только для blogs.dir. Но меня беспокоит влияние на производительность доступа к этим файлам по локальной сети.
Если вы сделали это, я хотел бы услышать ваше мнение о…
- Разумно ли делиться таким образом всем wp-контентом? Если нет, как насчет просто blogs.dir?
- Насколько это было связано с компромиссом производительности?
- Есть ли у вас какие-либо предложения, основанные на вашем опыте?
Спасибо.
В настоящее время я тоже занимаюсь этим, и этот пост кажется хорошим началом балансировки нагрузки: ephur.net/2010/01/02/scaling-wordpress-with-varnish. Я там же, где и вы, и у меня нет опыта развертывания WordPress с NFS, но я вернусь к этому посту, если узнаю что-то, чем стоит поделиться.
Спасибо, Крис. Я проверю эти ссылки. Я уже использую CDN и APC для кэширования кода операции. Для первого мне все еще нужен исходный сервер, а для второго я не знал, что могу разделить кеш APC на несколько разных серверов. Я посмотрю на это, хотя. Использование nginx для создания облегченного сервера для статических файлов интригует. Спасибо также за ссылки на NFS.
Это будет зависеть от скорости NFS и скорости локальной сети. Если вы используете кеш объектов, такой как APC, плагины и папки с файлами тем не будут затронуты, потому что они будут загружены в память.
Лучшим решением было бы использовать CDN или даже создать свой собственный CDN с помощью облегченного статического файлового сервера, такого как Nginx для blogs.dir. W3 Total Cache имеет встроенную прозрачную интеграцию сети доставки контента (CDN) с медиатекой, файлами тем и статическими файлами WordPress.
Если вы решили использовать NFS, вы можете предпринять некоторые шаги для оптимизации производительности, такие как использование энергонезависимой оперативной памяти, монтирование файловой системы как RAID 0 и использование UDP вместо TCP.