私たちのプロダクションサーバーはUbuntu 9.x、 メモリ8GB、HDD 250Gbはウェブサーバーとしてnginxを使用しています。 ピーク時(1000requests/sec)にパフォーマンスの問題が現在発生しています サーバーが1000requests/secを処理できるようにするには、nginxの設定を変更する必要があります。おかげnginxの設定が1000リクエスト/秒になる可能性があります。
ここでは、nginxのconfには、システムを分析せずに言うことは非常に困難である
#user nobody;
worker_processes 8;
events {
worker_connections 8024;
}
http {
passenger_root /opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/passenger-3.0.9;
passenger_ruby /opt/ruby-enterprise-1.8.7-2009.10/bin/ruby;
passenger_pool_idle_time 0;
passenger_max_pool_size 15;
include mime.types;
default_type application/octet-stream;
sendfile on;
## General options
#ignore_invalid_headers on;
keepalive_requests 2000;
#recursive_error_pages on;
#server_name_in_redirect off;
#server_tokens off;
## TCP options
tcp_nodelay on;
tcp_nopush on;
## Timeouts
client_body_timeout 10;
client_header_timeout 10;
keepalive_timeout 65;
#send_timeout 10;
#expires 24h;
gzip on;
server {
listen 80;
server_name resumecompanion.com;
passenger_enabled on;
rails_env production;
root /var/www/resumecompanion.com/production/current/public;
#access_log off;
#error_log off;
## Redirect from www to non-www
if ($host = 'www.resumecompanion.com') {
rewrite ^/(.*)$ http://resumecompanion.com/$1 permanent;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
# HTTPS server
#
server {
listen 443;
server_name resumecompanion.com;
passenger_enabled on;
rails_env production;
ssl on;
ssl_certificate /opt/nginx/ssl/resumecompanion.com.crt;
ssl_certificate_key /opt/nginx/ssl/start_resumecompanion_com.key;
ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
root /var/www/resumecompanion.com/production/current/public;
}
}
8つのworker_processを持つworker_connectionsについては、ulimit -n 64192(8 * 8024)のカーネルパラメータも変更する必要があります。 CPUコアの数と同じ数のプロセスを設定するのがベストです。 – petermolnar
@petermolnarこれはNginxのworker_rlimit_nofileでも行うことができます。 – qerub