Специальные настройки Apache + MySQL для легкого сайта

Специальные настройки Apache + MySQL для легкого сайта

У меня есть небольшой сайт с Joomla и Moodle. Кажется, что оба они очень медленные. Сервер (CentOS release 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

Я ищуопределенные настройкиизменение этого параметра увеличит скорость работы сервера.

решение1

Mysql всегда любит оперативную память. Преобразование (по крайней мере, большинства) таблиц (в Joomla и Moodle, но не в других) в формат InnoDb и увеличение используемой памяти также значительно повысит скорость. innodb_buffer_pool_size — это конфигурация MySQL. Размер используемой памяти по умолчанию составляет всего 8 МБ — если ваша база данных действительно такая маленькая (и я бы, честно говоря, немного удивился, если бы она вообще использовалась), то даже 16 МБ имели бы значение, и, скорее всего, я бы просто дал 512 МБ для innodb_buffer_pool_size в любом случае. Со всем содержимым базы данных в памяти диск практически исключается из уравнения.

УстановкаXdebugпозволит вам узнать, какие части сайта работают медленно, функция за функцией, строка за строкой. Вебгриндпроанализирует вывод Xdebug и покажет вам.

Чтобы узнать больше, вам нужно будет собрать некоторую статистику о том, что делает сервер - что-то вроде запуска collcted, а затем просмотреть графики, которые производятся. Даже просто просмотр вывода 'top', запуск в командной строке может очень помочь увидеть, что происходит.

Связанный контент