Добавление Drupal на мой сервер означает, что теперь у него проблемы с производительностью

У меня есть форум vb 3.8.4 и сайт drupal pressflow 6.22 на моем хостинг-сервере.

Когда я добавил сайт drupal на сервер, у меня было много проблем с производительностью на сервере

И иногда это приводило к остановке сервера

Вот спецификации хост-сервера:

  • Операционная система CentOS Linux 5.5
  • Webmin версия 1.560
  • Ядро и процессор Linux 2.6.18-194.26.1.el5 на платформе x86_64 Информация о процессоре Двухъядерный процессор Intel(R) Pentium(R) E2160 с частотой 1,80 ГГц, 2 ядра
  • Реальная память всего 3,74 ГБ, использовано 2,35 ГБ Виртуальной памяти всего 4 ГБ, использовано 124 КБ
  • Местное дисковое пространство всего 1,76 ТБ, использовано 147,63 ГБ

Вот основная настройка apache:

  • Apache MPM Prefork
  • HostnameLookups Off
  • AllowOverride Нет
  • MaxClients 100
  • ThreadsPerChild 25
  • StartServers 8
  • MaxRequestsPerChild 4000
  • mod_deflate включен
  • mod_expires включен

Вот основные настройки php.ini:

  • safe_mode = on
  • max_execution_time = 1200
  • max_input_time = 1200
  • memory_limit = 1500M

Вот настройки MySQL:

  • max_allowed_packet = 3G
  • max_connections = 200
  • WAIT_TIMEOUT = 30
  • thread_cache = 50
  • connect_timeout = 30
  • query_cache_limit = 1M
  • interactive_timeout = 30

Здесь top Результат команды процессора:

введите описание здесь

Здесь free -m а также iostat результат команды:

введите описание здесь

Здесь mysqladmin -u root -p ext -ri 30 | grep tmp_disk_tables результат команды:

  • | Created_tmp_disk_tables | 1771 |
  • | Created_tmp_disk_tables | 2 |
  • | Created_tmp_disk_tables | 5 |
  • | Created_tmp_disk_tables | 3 |
  • | Created_tmp_disk_tables | 7 |
  • | Created_tmp_disk_tables | 0 |

Мы установили: ffmpeg, библиотеки gd и оптимизатор Zend

Средняя загрузка процессора всегда выше 3

Так кто-нибудь может мне помочь с этим?

Если вам нужна дополнительная необходимая информация, просто спросите в комментариях?

3 ответа

You have a 3.5 GB memory limit (memory_limit = 3500M), and are potentially starting 256 servers (MaxClients 256). Это увеличивает общее потребление памяти до 900 ГБ. Если у вас нет такого большого объема оперативной памяти, шансы на замену высоки, и именно это приводит к снижению производительности.

Вам необходимо резко набрать оба этих номера. Я никогда не видел ограничение в 3,5 ГБ памяти за пол десятилетия поддержки Drupal. Если у вас есть случайная задача, требующая такого высокого предела, ее, вероятно, следует запустить в командной строке с drush, а не через апач.

Какой выход free -m? Как насчет iostat (yum install sysstat если у вас его нет)?

Какой-то процесс пожирает ваш процессор. Чтобы найти что, сделайте следующее:

Type on the terminal:
top
Press Shift+P to order the list by CPU usage.

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

Drupal очень реляционный. Одна общая черта - создание временных таблиц на диске. Вы хотите минимизировать это, если можете, оптимизируя запросы или, если нужно, поместите MySQL tmpdir на RAM-диск.

Запустите это:

mysqladmin -u root -p ext -ri 30 | grep tmp_disk_tables

Первая запись скажет вам, сколько временных таблиц было создано на диске с момента последнего перезапуска; после этого, сколько было создано в течение 30 секунд, пока вы не нажмете Ctrl-C из него.

Вы также не сказали, были ли ваши таблицы Drupal InnoDB или MyISAM с точки зрения рекомендаций по конфигурации MySQL. В Drupal 6 по умолчанию используется MyISAM.

Другие вопросы по тегам