タグ

networkとLinuxに関するh2ondaのブックマーク (6)

  • Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング - ゆううきブログ

    記事の公開後の2016年7月にはてなにおけるチューニング事例を紹介した。 はてなにおけるLinuxネットワークスタックパフォーマンス改善 / Linux network performance improvement at hatena - Speaker Deck HAProxy や nginx などのソフトウェアロードバランサやリバースプロキシ、memcached などの KVS のような高パケットレートになりやすいネットワークアプリケーションにおいて、単一の CPU コアに負荷が偏り、マルチコアスケールしないことがあります。 今回は、このようなネットワークアプリケーションにおいて CPU 負荷がマルチコアスケールしない理由と、マルチコアスケールさせるための Linux カーネルのネットワークスタックのチューニング手法として RFS (Receive Flow Steering) を

    Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング - ゆううきブログ
  • SPDYとLinuxの間でGoogleマップがハマった落とし穴 - ぼちぼち日記

    tl;dr 書いていたら思わず長文の大作になってしまいましたので、プロトコルオタ以外の方は文章の多さに退屈されるかと思います。GoogleマップサービスでSPDYの問題が発覚し、GoogleLinuxカーネルに修正を加えて対応したというお話です。将来 Linux + nginx + SPDY を使いリバースプロキシでサービス運用を検討されている方は参考になるかもしれません。 1. はじめに、 プロトコルに執着する年寄りエンジニア老害が叫ばれて久しい。 年甲斐もなく自分好みのパケットを追っかけるおやじエンジニアの姿を見て眉をひそめる若者も多いと聞く。 そんな批判に目もくれず、今日も一つ、プロトコルオタのネタをブログで公開したいと思いますw 今回はちょうど1年ほど前に書いたブログ記事 「GmailがハマったSPDYの落とし穴」の続編です。といっても今度の舞台は、Googleマップ。ネタ元も

    SPDYとLinuxの間でGoogleマップがハマった落とし穴 - ぼちぼち日記
  • マルチコアとネットワークスタックの高速化技法

    7. Network stack in 4.3BSD Process(User) Process(Kernel) HW Intr Handler SW Intr Handler パケット受信 プロトコル処理 ソケット 受信処理 ユーザ プログラム user buffer input queue socket queue パケット システムコール プロセス起床 ソフトウェア割り込みスケジュール ハードウェア割り込み ユーザ空間へコピー 13年4月23日火曜日

    マルチコアとネットワークスタックの高速化技法
  • Open vSwitchがLinux 3.3でメインラインにマージ、標準サポートへ

    3月18日にLinuxの最新版「Linux 3.3」が公開されました。今回のバージョンではAndroidプロジェクトのコードのマージが大きな特徴の1つですが、ネットワーク関係でも大きな前進がありました。1つはOpen vSwitchがメインラインにマージされ、Linux 3.3から標準サポートとなったこと、そしてネットワークインターフェイスを束ねて帯域幅の拡大を実現する「Teaming」機能が改善されたことです。 LinuxにはすでにLinux bridgeがありますが、Open vSwitchはさらに高度な機能を備えたソフトウェアスイッチとして標準サポートされるとのこと。仮想環境のソフトウェアスイッチとして普及しつつあるOpen vSwitchは、さらにその地位を固めようとしています。 なぜOpen vSwitchLinuxのメインラインに? ところで、なぜOpen vSwitchがL

    Open vSwitchがLinux 3.3でメインラインにマージ、標準サポートへ
    h2onda
    h2onda 2012/03/21
    bondingとは別にteamingモジュールがあるらしい...
  • じゃあ、Linuxのネットワークスタックはどうなのん? - syuu1228's blog

    この記事の続きになる訳だが、いくらSolaris最強って言っても、大手メーカーがこぞってつつき回して性能改善したり機能追加したりしてるはずのLinuxで何も対策が打たれてない訳が無いよね。じゃあどうなってるんだろう、って話。 例によって、Linuxとか全ッ然知らないので、間違ってたらツッコミ下さい。 ポーリングとパケット処理のパス 殆どここで解説し尽くされてる。 Linuxにも動的ポーリングの実装(Solarisで言ってる動的ポーリングと同じものとは限らないが…)があって、NAPIとか呼ばれてるらしい。 NAPIを実装するドライバでは、こんな手順で受信処理を行ってる。 ハードウェア割り込みを受け、割り込みハンドラを起動 ハードウェア割り込みを禁止、ポーリングをスケジュール ソフトウェア割り込み経由でNAPIのポーリングルーチンを起動 ドライバにポーリングを指示 この時、適切な性能を確保する

    じゃあ、Linuxのネットワークスタックはどうなのん? - syuu1228's blog
  • 第12回 ソケット・インタフェース

    前回,Linuxがハードウエアを制御するデバイス・ドライバについて解説しました。そこでは,Linuxがハードウエアを抽象化する3つのデバイス・モデルのうち,ブロック・デバイスとキャラクタ・デバイスについて紹介しました。 しかし,もう一つのネットワーク・デバイスには触れませんでした。それは,ネットワーク・デバイスは,カーネルのネットワーク機能に密接にかかわっており,他の2つのデバイス・タイプとは異なる部分が多いためです。 Linuxカーネルは,インターネットなどで使われる通信プロトコルであるIP(Internet Protocol)をはじめ,AppleTalkやIPXといったさまざまなプロトコルに対応したネットワーク機能を持っています。物理的な接続規格についても,一般的に使われているイーサネットのほか,さまざまな規格に対応しています。 今回から,Linuxのネットワーク機能と,ネットワーク・

    第12回 ソケット・インタフェース
  • 1