Linuxのネットワークスループット改善法教えます
翻訳校正:原井彰弘
Linuxのネットワークスループットについて悩んでいる? カーネルをチューニングすればパフォーマンス向上の余地は残されている。
Linuxのカーネルやそれを含むディストリビューションでは、ネットワークのパラメータに影響を与えるような設定の一部は、デフォルトでは非常に控えめに設定されていることが一般的である。このような設定をチューニングするには、/procファイルシステムを使用する方法やsysctlプログラムを用いる方法があるが、どちらかというと後者の方がよい場合が多い。なぜかというと、後者の場合は/etc/sysctl.confファイルの内容を読み取るため、リブートを行っても設定が保持されるからだ。
/etc/sysctl.confで行える設定のうち、ネットワークのパフォーマンスを向上させる可能性がある設定を以下に示そう。
net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_syncookies = 1 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216
上記の設定は、/etc/sysctl.confにすでに存在する設定を置き換えるためのものではなく、既存の設定を補うためのものだ。最初のコマンドでは、クライアントがより高速にデータをダウンロードできるようにしている。TCPのウィンドウスケーリングを有効にしてTCPパケットの余分なビットを利用することが可能になり、ウィンドウのサイズを増加させられるようになるのである。
2つ目のコマンドでは、TCP SYN cookiesを有効にしている。この値はデフォルトで有効になっていることもあるのだが、受信したコネクションを処理するために利用されているサーバのリソースが、SYN floodsなどによって枯渇するような状況を防ぐために、非常に効果的である。
最後の4つのオプションでは、TCPの送受信の際により多くのバッファを利用できるようにしている。これによって、アプリケーションがデータをより高速に取り出し、ほかのリクエストに備えることが可能になる。またこの設定によって、クライアントがビジー状態の場合にサーバへデータを送信する能力も向上する。
これらのコマンドを/etc/sysctl.confファイルに追加すると、リブートが行われる都度設定が有効になるようになる。もし、リブートを行わずに直ちに設定を有効にしたい場合は、以下のコマンドを使用すればよい。
# sysctl -p /etc/sysctl.conf
また、現在設定が行われているsysctlのオプションをすべて表示するには、以下のコマンドを実行する。
# sysctl -a
このコマンドを実行すると、すべての設定のキーと現在の値が一覧で表示される。新しいデフォルト値の設定と保存はsysctl.confファイルで行える。このコマンドで出力される値は、カーネルで定義されており現在有効になっているデフォルト値なのである。ちなみに、特定の項目の値を表示したければ以下のように実行すればよい。
# sysctl -q net.ipv4.tcp_window_scaling
同様に、sysctl.confを直接編集せずにある項目の値を設定するには、以下のように実行する。ただし、このように設定した場合はリブートを行うともとの値に戻ってしまう。
# sysctl -w net.ipv4.tcp_window_scaling=1
しかし、この設定方法は特定の設定の有効性をデフォルト値を変更せずテストしたい場合に便利だろう。
- ホワイトペーパー
- 企画特集
- 話題のタグ
SQLite対応アプリのデータベースファイルを閲覧する
グーグル、「Google Buzz」を発表--Gmailのソーシャル機能を強化
「H.264」ストリーミングのロイヤリティ無料期間が延長
マイクロソフト、「Office 2010」のRC版をリリース
レガシーアプリケーションの稼働どうしてる?
仮想環境のバックアップは難しいのか
身近な業務をCRMが変革!
アプリケーション仮想化 3つの課題
Xbox Live インディーズゲーム開発の軌跡
通販サイトのアクセス集中からの危機を救う
事例 VMwareでデータセンターをクラウド化
御社はまだフリーの転送サービスですか?
利用者の理想を追求した最新レンタルサーバ
アンケートから見るセキュリティ対策の実態
DBのパフォーマンスに困ってませんか?
経営統合後の事業損益構造の見える化を実現
新しい視点のレンタルサーバが誕生!
仮想化をダメにするストレージの実態