Добавление 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.