[ARM][IRQ] ARM SBCでもirqbalanceを使用するようにしようという話。

     
    • 最終更新日時:2018/11/02 09:08:29

    Embed
    Screenshot_2018-10-30 Irqbalance irqbalance

    記事名通りなんですが。
    最近はラズパイを始めとして、Orange PiだったりBanana PiだったりとARM板は非常に入手しやすくなっています。
    またイメージについても各種ARM板の販売元はもとより、Armbian、Diet Piなどイメージが多く出されています。

    今回は私も使用しているArmbianを中心にしますが、その中でirqbalanceをちゃんと使用しましょう、ということです。

    そもirqbalanceとは何ぞや、という人は公式を確認してください。
    Irqbalance/irqbalance: The irqbalance source tree - The new official site for irqbalance

    Irqbalanceは、システムのCPU全体で、割り込みによって生成されたCPU負荷のバランスをとるためのデーモン


    x86_64な*nixを触っている人は分かると思いますが、最近のメニーコアなシステムでは負荷を最適化するために、irqbalanceの動作は必須だと思います。恩恵は全体の負荷の最適化ならず、NICのスループットの向上なども果たす場合があります。
    この手の記事については過去にも話題になったので覚えている人も多いかと思います。
    RSS対応NICなのに割り込み処理が複数コアに分散しない...のはirqbalanceが動いてなかったから - 酒日記 はてな支店CentOS 6.2 で RPS/RFS を使ってネットワークの割り込み処理を複数コアに分散してみた - blog.nomadscafe.jp

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

    HAProxy や nginx などのソフトウェアロードバランサやリバースプロキシ、memcached などの KVS のような高パケットレートになりやすいネットワークアプリケーションにおいて、単一の CPU コアに負荷が偏り、マルチコアスケールしないことがあります。


    ラズパイもRPi3では4コアで動作しますし、最近のH5系でも4コア、rockchipのrk3399だとa72+a53の6コアだったと思います。ということでマルチコア動作は当たり前になってきています。しかし、なぜかArmbianにはirqbalanceはプレインストールされていないので、ちょっとパフォーマンスが発揮できていないかも、という状態になっているはずです。

    ちなみに自分の場合は以下のようになっていました。
    Screenshot_2018-10-29 kometch private カスタムグラフ [60秒ごとに更新。]
    Screenshot_2018-10-29 kometch private カスタムグラフ [60秒ごとに更新。](1)
    上の図だと10月28日2時ごろから、その下の図だと10月28日22時前ごろから青い部分の「CPU user time」が減少していることが分かります。/proc/interrunptsの適用前後の値も取っておけばよかったのですが忘れていました。
    $ cat /proc/interrupts 
    CPU0 CPU1 CPU2 CPU3 CPU4 CPU5
    10: 0 0 0 0 0 0 GICv3 25 Edge vgic
    12: 0 0 0 0 0 0 GICv3 27 Edge kvm guest timer
    14: 0 0 0 0 0 0 GICv3 29 Edge arch_timer
    15: 120281607 107664001 101097258 100359092 20984311 19389053 GICv3 30 Edge arch_timer
    17: 15040270 12273978 10420869 10843832 5507457 4590059 GICv3 113 Level rk_timer
    20: 0 0 0 0 0 0 GICv3 37 Level ff6d0000.dma-controller
    21: 0 0 0 0 0 0 GICv3 38 Level ff6d0000.dma-controller

    $ cat /proc/interrupts 
    CPU0 CPU1 CPU2 CPU3
    1: 0 0 0 0 GICv2 25 Level vgic
    3: 21511711 26487897 20789511 20495437 GICv2 30 Level arch_timer
    4: 0 0 0 0 GICv2 27 Level kvm guest timer
    6: 0 0 0 0 GICv2 32 Level ff1f0000.dmac
    7: 0 0 0 0 GICv2 33 Level ff1f0000.dmac

    NICについてはRSSには対応していないので分散はされていません。この辺りまで実装されれば面白いことになると思いますが、ARM SBCとしてはコストアップになっちゃうでしょうから、実装はなさそうですね・・・ もしかしたらSoCに盛り込まれるようになるのかもしれませんが。

    というわけで、ARM板でもirqbalanceを有効にして使用した方がいいよ、という内容でした。
    ちなみに、irqbalanceですが、ARM関連に関して更新が入ったりしているので、aptやyumからではなく自分でbuildして導入した方が良さそうな気がします。私は今のところ自分でbuildして導入するようにしています。

    Linuxのirqbalanceがオフとなっていた - 銀の鍵 (The Silver Key) /
    https://www.ginnokagi.com/2013/03/linuxirqbalance.html
    EC2 Linuxでirqbalanceが動作しない part1 - Qiita
    関連記事


    Pagination

    Trackback

    Trackback URL

    https://kometchtech.blog.fc2.com/tb.php/2169-7807d878

    Comment

    Post Your Comment

    コメント登録フォーム
    公開設定

    Utility

    Profile

    kometchtech

    Author:kometchtech
    なんちゃってエンジニアです。
    2009年10月から業務都合により大阪勤務になりました。
    2010年1月、HYBRID W-ZERO3を購入しました。
    2010年11月、HTC Desire HDを購入しました。
    2012年2月、都内の会社に転職しました。
    2012年5月、HTC One Xを購入しました。
    2012年8月、事情により休職しました。
    2012年8月、SONY Xperia SXを購入しました。
    2013年1月、一身上の都合により退職しました。
    2014年3月、都内の会社に就職しました。
    2016年8月、HPC系の会社に転職しました。
    2018年6月、Xperia XZ1 compactに機種変。

    Amazonほしい物リスト
    何か問題などありましたら、こちらまで。 Twitter:@kometchtech follow us in feedly

    カレンダー

    10 | 2018/11 | 12
    - - - - 1 2 3
    4 5 6 7 8 9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 -

    記事リスト

    最新の記事

    全記事(数)表示

    全タイトルを表示

    バロメーター

    カテゴリー

    カテゴリークラウド

    アーカイブ

    検索フォーム

    FCカウンター

    オンライン

    現在の閲覧者数:

    Amazonアソシエイト

    スポンサードリンク

    月間ページランキング

    ブログパーツ

    サイトランキング