RAM 1and1.com仮想サーバーのApache構成8GBでサーバーの過負荷に問題があります。選択時間中に(Google Analyticsによると)100人以上のアクティブユーザーに到達すると、サーバーの速度が非常に遅くなります。 siege&loadimpactテストを実行し、httpd.confファイルにいくつかの構成変更を加えましたが、それで十分かどうかわかりません。16GBのようなRAMがもっと必要なのか、何かが足りないのでしょうか。プログラミングを最適化できることはわかっていますが、パフォーマンスが大幅に向上するかどうかはわかりません。興味深い事実は、並列メモリの使用量がこの過負荷時に10〜20%しか表示されないことですが、Webサイトは非常に遅いです!ヘルプ!
Avg. site file size is 1.5MB (We have lots of pictures)
Avg. load time: 1.8s (during normal days) - 1,600 page views, 270 highest sessions p/h
これは、非常に遅いサーバー日の分析統計です。
Highest sessions per hour: 420 - 700
Total sessions: 4,300 - 37,000
Page views: 25,300 - 361,500
Avg. Session duration: 9min
1and1によって提供されるサーバーデータ:
Webspace: 200GB
RAM: 8GB
Unlimited Traffic: yes
Operating System: CentOS 6 minimal system (64-bit)
cpu cores: 8
Processors: 4
Processor: AMD Opteron(tm) Processor 6378
Http.conf
Timeout 75
KeepAlive On
MaxKeepAliveRequests 500
KeepAliveTimeout 3
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 220
MaxClients 220
MaxRequestsPerChild 5000
</IfModule>
my.conf
max_allowed_packet = 1G
max_connections = 500
max_user_connections = 500
thread_cache_size = 500
query_cache_type = 1
query_cache_size = 128M
sort_buffer_size = 2M
tmp_table_size = 32M
read_buffer_size = 128k
read_rnd_buffer_size = 256k
join_buffer_size = 128k
table_definition_cache = 400
table_open_cache = 400
key_buffer_size = 500M
max_heap_table_size = 64M
innodb_buffer_pool_size = 500M
innodb_additional_mem_pool_size = 20M
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 12M
innodb_log_file_size = 256M
私は何か間違ったことをしていますか?私はすべての助けに感謝します!
最初に確認する必要があるのは、ボトルネックがどこにあるかを判断することです。
一般的に、これらの種類のパフォーマンスの問題は、Webサーバーの構成ではなく、アプリケーションに発生します。
ボトルネックを理解したら、Webサーバーソフトウェアを使用してそれを軽減できる場合があります(正確な方法は、実行しているアプリケーションコードと、Webサーバーに接続する方法によって異なりますが、多くの問題があります。 FastCGIまたはmod_passenger
)を最大限に活用するための情報がありますが、そこでできることはたくさんあります。
要約:Webサーバーから始めるのではなく、ボトルネックを追跡して修正することから始めます。Webサーバーで何かできることがあれば、それを試してみてください。ただし、それができない可能性があります。アプリケーションのパフォーマンスの問題を修正します。