軽量サイト向けのApache + MySQLの設定

軽量サイト向けのApache + MySQLの設定

私は Joomla と Moodle をセットアップした小さな Web サイトを持っています。どちらも非常に遅いようです。サーバー (CentOS リリース 5.5 (最終版)) は、約 2GB の RAM を搭載した仮想専用サーバーです。10 ~ 15 人以上が同時にアクセスすることはまずありません (その数が多い場合)

サイトのパフォーマンスを向上させるために、Apache、MySQL、または OS でどのような設定を変更できますか?

訪問者が多すぎてもリソースが不足する心配はありません。

より具体的なデータが必要な場合はコメントを残していただければ質問を編集します。

データベース速度:

+--------------------+----------------------+------------------+
| 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 は常に RAM を好みます。テーブル (少なくとも大部分) (joomla と moodle 内、他は除く) を InnoDb 形式に変換し、使用するメモリを増やすと、速度も大幅に向上します。innodb_buffer_pool_size は、mysql の設定です。使用するデフォルトのサイズはわずか 8MB です。データベースが本当にそれほど小さい場合 (実際に使用されているとしても、正直言ってその小ささには少々驚きます)、16MB を割り当てるだけでも違いが出てきます。innodb_buffer_pool_size には 512MB を割り当てる可能性が高いでしょう。データベースの内容がすべてメモリ内にあるため、ディスクはほとんど考慮する必要がありません。

インストールXデバッグ機能ごと、行ごとにサイトのどの部分が遅いかを調べることができます。 ウェブグラインドXdebug の出力を解析して表示します。

それ以上のことを知りたい場合は、サーバーが何をしているかに関する統計情報を収集する必要があります。たとえば、collcted を実行して、生成されたグラフを表示するなどです。コマンド ラインで実行されている「top」の出力を見るだけでも、何が起こっているかを把握するのに大いに役立ちます。

関連情報