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
しかし、この設定方法は特定の設定の有効性をデフォルト値を変更せずテストしたい場合に便利だろう。
- 今日のトップ記事
- 2日前
- 4日前
- 6日前
- 7日前
- ホワイトペーパー
-
増え続けるファイルデータ。高まるデータ保護と事業継続への要求。データ可用性とデータ保護に優れ、かつコスト効率の高い分散型エンタープライズ環境を実現するためのヒントとは?
〜Brocade StorageXレプリケーション機能が可能にするリソース利用率の最適化とデータ保護
-
【導入事例】株式会社アールケイ エンタープライズ様 .NET 対応の販売管理システムにリニューアルすることで20万アイテムに上るリサイクルブランド品をリアルタイムで管理
-
【導入事例】-ソニー生命保険様
10のサブシステムと同期する6,000名のアカウントを統合する認証基盤を構築し、シングルサインオンによる
Webポータルでの情報共有を実現
-
〜ネット広告の新機軸〜
ガジェット・アド 『ガジェットギャラリー』
-
エンタープライズJavaのためのアプリケーションの仮想化
- 読者投票
- 話題のタグ
MS、Vistaとの互換性をチェックできる「Compatibility Center」リリースへ
「似非」SOAを見破る10の方法
Firefox 3のアドオンやテーマ管理を容易にする
openSUSE 11.0を試してみた
フォトレポート:世界各国の優秀な技術者がパリに集結--Imagine Cup 2008世界大会
バッチ処理でデータベース活用:4つの課題と5つの解決ポイント
Rubyでどう書く?:RubyでWord文書を作成する
DELL連載第4回〜「Microsoft System Center」
ZDNet Japan Green IT
Techno Exchange
「未来の、その先」をどう提言していくか
今知るべき仮想化情報