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
しかし、この設定方法は特定の設定の有効性をデフォルト値を変更せずテストしたい場合に便利だろう。
- ホワイトペーパー
- 企画特集
そのストレージで仮想化に対応できますか?
インターネット上の悪意を未然に防ぐには?
セキュリティ&ユーザ事例【SIer Club】
集積度も性能も、業界最高水準のブレードPC
ロリポップ!がリニューアル
SOA、BPM、SaaS −今、企業に必要なこと
中小企業のセキュリティリスクとは?
ストレージメディア特設サイト開設
御社のログ活用しませんか!?
【徹底対談】運用管理ツールの賢い使い方
今注目の「サジェスト検索」−デモ掲載中
◆エン・ジャパン厳選求人☆毎週更新◆
パンデミック対策特集
ESBでIT投資の無駄を劇的に解消する
仮想環境を実現するソリューション特集
- エンタープライズにおけるSUSEの強み
- サービス・ドリヴン・データセンター
- サーバー監視・運用のコストを削減するには
- ■ストレージ容量50%削減保証■
- 話題のタグ
Windows 7はLinuxへの切替が簡単:注目の仮想ディスクフォーマット「VHD」
iPhone OS 3.0で変わった「絵文字」
OSSのクラウド基盤「Eucalyptus」を使う(4)--インストール〜ノード構築
俳優経験者が指南する「人前で上手く話すためのティップス10選」
「うるまでるびペイント」登場:絵は上手下手ではなく制作過程に楽しみが
待てば回路の日和あり--「iPhone 3GS」発売、しかし――