У меня есть форум 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.