Как настроить сервер с 4g памяти для запуска drupal 7

9

Я устанавливаю Drupal 7 на новый сервер с 4 ГБ памяти. Я хотел бы получить некоторые советы о том, как правильно его настроить, сколько памяти отдать MySQL и сколько памяти дать PHP. Одна вещь, которую я обнаружил, заключается в том, что запуск Drupal 7 на Zend-сервере в три раза быстрее, чем на обычном сервере Apache. (Я думаю, что это связано с кэшированием кода операции. Я заметил, что с модулем devel он использует треть памяти.

Можете ли вы поделиться своими настройками со мной?

Никола Пелучетти
источник

Ответы:

5

Если у вас уже есть данные Drupal7, вы должны загрузить их в промежуточную среду и выполнить некоторые размеры буфера в зависимости от объема данных, которые у вас есть.

Шаг 1) Сначала вы должны вычислить размеры буфера для вашего набора данных .

Шаг 2) Если рекомендуемые размеры превышают 75% от установленной ОЗУ (в вашем случае 3 ГБ), тогда ограничьте необходимые буферы 3 ГБ.

Шаг 3) Если у вас есть данные InnoDB и вы не включили innodb_file_per_table, вам нужно очистить InnoDB, сегментируя каждую таблицу в ее собственное физическое табличное пространство (это нужно сделать только один раз) .

После того, как вы это сделаете, вы должны планировать проводить этот аудит конфигурации (шаги 1 и 2) каждые 6 месяцев, чтобы убедиться, что у вас есть правильное кэширование MySQL.

Интересно, что я ответил на вопрос, похожий на этот, и ответил на него 15 апреля 2011 года .

RolandoMySQLDBA
источник
4

Некоторые вещи, на которые стоит посмотреть :

Статья для чтения :

Rackspace: Развертывание Drupal в облаке с помощью nginx и boost должно дать вам множество идей.

Небольшая цитата по кешированию кода операции:

Мы используем APC в качестве кеша кода операции. Это спасает сервер от перекомпиляции кода PHP при каждой загрузке страницы. Более того, все это легко помещается в ОЗУ (обычно мы предоставляем APC 128 МБ ОЗУ). Это резко снижает нагрузку на процессор. Зарегистрированные пользователи теперь могут просматривать сайт намного быстрее. Но мы все еще можем справиться только с ограниченным числом из них. Мы можем сделать немного лучше. Вместо того, чтобы запрашивать MySQL каждый раз, когда мы заходим в кеш, мы можем хранить эти таблицы в памяти. Сюда приходят memcached и модуль cacherouter.

Барт
источник
2

Я начал с my_huge conf из каталога mysql; Я также добавил к смеси Varnish. Как вы уже узнали, Zend значительно повышает производительность.

После нескольких дней работы я запустил скрипт mysqltuner и выполнил некоторые из рекомендаций, в основном по поводу кэша временных таблиц.

marksward
источник
1

В зависимости от размера сайта вы также можете посмотреть на memcached. Это будет конкурировать за ресурсы с MySQL, но может снизить нагрузку на него.

Джереми Френч
источник
На самом деле, вы можете уменьшить как пул буферов InnoDB, так и кеш ключей MyISAM, если memcached достаточно велик. Таким образом, memcached не конкурирует с mysql, но mysql просто дополнит memcached в качестве канала данных, а не основной базы данных. +1 за предложение memcached первым !!!
RolandoMySQLDBA