ubuntu 64 の ec2 c1.xlarge マシンで単純な node.js と Cyclone Hello World アプリをロード テストしようとしています。これには 8 コアがあります。nginx をロード バランサーとして使用しており、スーパーバイザーはコアごとに 1 つのプロセスを起動しています。マシンで以下を実行すると、node.js の qps は約 6500 です。
ab -n 5000 -c 25 http://127.0.0.1
リモート マシンから ab を実行すると、同じゾーンにあるマシンであっても、qps は約 175 qps に低下します。開発マシンから実行するとさらに悪化します。
それで、私は何が欠けていますか?リモート マシンからより多くの接続を許可するために調整する必要があるパラメーターはありますか? 何かが足りない気がします。sysctl 構成ファイルで調整する必要がある魔法の nob はありますか? そのかなり生のマシンですが、起動時に、以下は私が調整したノブです。
sysctl -w fs.file-max=128000;
sysctl -w net.ipv4.tcp_keepalive_time=300;
sysctl -w net.core.somaxconn=250000;
sysctl -w net.ipv4.tcp_max_syn_backlog=2500;
sysctl -w net.core.netdev_max_backlog=30000;
sysctl -p