Назад | Перейти на главную страницу

Добавление 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) Dual CPU E2160 @ 1,80 ГГц, 2 ядра
  • Реальная память всего 3,74 ГБ, используется 2,35 ГБ Виртуальная память всего 4 ГБ, используется 124 КБ
  • Пространство на локальном диске 1,76 ТБ, занято 147,63 ГБ

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

  • Предварительный форк Apache MPM
  • Имя хоста
  • AllowOverride Нет
  • MaxClients 100
  • Темы для ребенка 25
  • StartServers 8
  • MaxRequestsPerChild 4000
  • mod_deflate включен
  • mod_expires включен

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

  • safe_mode = on
  • max_execution_time = 1200
  • max_input_time = 1200
  • memory_limit = 1500 МБ

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

  • max_allowed_packet = 3G
  • max_connections = 200
  • wait_timeout = 30
  • thread_cache = 50
  • connect_timeout = 30
  • query_cache_limit = 1 млн
  • Interactive_timeout = 30

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

Здесь 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,5 ГБ (memory_limit = 3500M) и потенциально запускаем 256 серверов (MaxClients 256). В результате общее потенциальное потребление памяти составляет чуть менее 900 ГБ. Если у вас в коробке не так много оперативной памяти, велика вероятность, что вы меняете местами, и это вызывает снижение производительности.

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

Какой результат 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.