
CentOS サーバーを管理する新人システム管理者です。この 1 週間は、私のキャリアの中で最も刺激的な 1 週間の 1 つであり、さまざまな新しいことを学ぶことができました。ただし、今日は別のタスクがあります。それは、サーバーが以前の共有ホスティングの能力を超える処理を処理できるようにすることです。
当初、GoDaddy 共有ホスティングでは同時接続数が 200 に制限されていました。最終的に、この制限を超え (通常はキャンペーン/マーケティング イベント中)、仮想専用サーバーに移行しました。接続数は Apache によって処理されるものと想定しています。
より多くのトラフィックを許可するには、どのような構成に留意する必要がありますか?
答え1
静的 Web ページの提供についてのみ話しているのですか? 何らかのプログラム バックエンドがある場合は、その答えはさまざまですが、Apache の場合は、プロセス モデルと、許可されているプロセス/スレッドの数です。また、一般的な UNIX Apache チューニング ガイドを読んで、ユーザーごとのプロセス数と開いているファイル数が適切であることを確認してください (ulimit -n と -u でこれらが表示されます。/etc/security/limits.conf で nproc と nofile を使用して設定し、/etc/pam.d/login に "session required /lib/security/pam_limits.so" を追加して有効にします)。
古い Apache では、スレッドごとに別のプロセスを生成する「prefork」モデルが常に使用されます。これは、古い MaxClients 設定です。多数のモジュールなどを使用している場合、200 ~ 250 の Apache プロセスで、RAM がそれほど多くないマシンが簡単にいっぱいになります。新しい Apache を使用しており、異なるスレッド モデルを使用する「worker」MPM を使用していることを確認してください。サーバーごとに少し多くなります (調整するにはさらに設定が必要です)。
極めて高いスケーラビリティが必要な場合は、Apache から nginx などに移行してください。ただし、シナリオが「200 を少し超える程度」であれば、Apache で十分です。
30 個程度の巨大なファイルを提供するのでない限り、タイムアウトを適度に低い値に設定するようにしてください。
圧縮とキャッシュを使用します。
答え2
また、負荷が高くなると、Linux ファイアウォールの設定、特に conntack モジュールの調整が必要になる場合があります。インターネット上にはいくつかの記事がありますが、私の記事はこちらです:http://timanovsky.wordpress.com/2009/04/10/tuning-linux-firewall-connection-tracker-ip_conntrack/