У меня есть небольшой веб-сайт с установленными Joomla и Moodle. Кажется, что оба они очень медленные. Сервер (CentOS версии 5.5 (Final)) представляет собой виртуальный выделенный сервер с 2 ГБ оперативной памяти. Я не ожидаю, что когда-нибудь найду более 10-15 человек одновременно (и если это много)
Какие настройки я могу изменить в apache, mysql или даже в ОС, чтобы повысить производительность моего сайта?
Меня не беспокоит нехватка ресурсов, если у меня будет слишком много посетителей.
Если вам нужны более конкретные данные, оставьте комментарий, и я отредактирую вопрос.
Скорость базы данных:
+--------------------+----------------------+------------------+
| Data Base Name | Data Base Size in MB | Free Space in MB |
+--------------------+----------------------+------------------+
| information_schema | 0.00390625 | 0.00000000 |
| joomla | 0.33125496 | 0.07981014 |
| moodle | 7.73092937 | 0.01922131 |
| mysql | 0.52505302 | 0.00000000 |
| phpmyadmin | 0.01499939 | 0.00106049 |
+--------------------+----------------------+------------------+
5 rows in set (0.07 sec)
Загруженные модули Apache:
core prefork http_core mod_so mod_auth_basic mod_auth_digest mod_authn_file mod_authn_alias mod_authn_anon mod_authn_default mod_authz_host mod_authz_user mod_authz_owner mod_authz_default mod_include mod_log_config mod_env mod_ext_filter mod_mime_magic mod_expires mod_deflate mod_headers mod_setenvif mod_mime mod_status mod_autoindex mod_info mod_negotiation mod_dir mod_alias mod_rewrite mod_cache mod_suexec mod_disk_cache mod_file_cache mod_cgi mod_version mod_php5 mod_ssl
$ cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
#don't use old password format
old_passwords=0
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
symbolic-links=0
#Alwaysuse the better InnoDB
default-storage-engine=InnoDB
innodb_buffer_pool_size=512
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
я ищу конкретные настройки изменить это увеличит скорость сервера.
Mysql всегда любит оперативную память. Преобразование (по крайней мере, большинства) таблиц (в joomla и moodle, а не в других) в формат InnoDb и увеличение объема используемой памяти также значительно улучшит скорость. innodb_buffer_pool_size - это конфигурация mysql. Используемый по умолчанию размер составляет всего 8 МБ - если ваша база данных действительно настолько мала (и я, честно говоря, был бы немного удивлен, если бы она вообще использовалась), то предоставление ей даже 16 МБ будет иметь значение, и Скорее всего, я бы все равно отдал 512 МБ для innodb_buffer_pool_size. Когда все содержимое базы данных находится в памяти, диск почти не учитывается.
Установка Xdebug позволит вам узнать, какие части сайта работают медленно, функция за функцией, строка за строкой. Webgrind проанализирует вывод Xdebug, чтобы показать вам.
Чтобы узнать больше, вам нужно будет собрать некоторую статистику о том, что делает сервер - что-то вроде работы со сборками и последующего просмотра создаваемых графиков. Даже просто глядя на вывод команды «top», запуск из командной строки может очень помочь увидеть, что происходит.