JoomlaとMoodleが設定された小さなウェブサイトがあります。これらは両方とも非常に遅いようです。サーバー(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
サーバーの速度を上げるために変更する特定の設定を探しています。
Mysqlは常にRAMが好きです。 (少なくともほとんどの)テーブル(joomla&moodleで、他のテーブルではない)をInnoDb形式に変換し、使用するメモリを増やすと、速度も大幅に向上します。 innodb_buffer_pool_sizeはmysql構成です。使用するデフォルトのサイズはわずか8MBです-データベースが本当に小さい場合(そして、実際に使用されていたとしても、その小さなことに少し驚いたでしょう)、16MBでも違いがあります。とにかく、innodb_buffer_pool_sizeに512MBを与える可能性が高いです。すべてのデータベースの内容がメモリにあるため、ディスクはほとんど方程式から外れます。
Xdebug をインストールすると、サイトのどの部分が遅いか、機能ごと、行ごとに見つけることができます。 Webgrind Xdebugの出力を解析して表示します。
それ以上のことを知るには、サーバーが何をしているかに関するいくつかの統計を収集する必要があります。たとえば、collctedを実行してから、作成されているグラフを表示します。 'top'の出力を見ているだけでも、コマンドラインで実行すると何が起こっているかを確認するのに大いに役立ちます。