タグ

kernelとdevに関するao41のブックマーク (3)

  • 先読み処理 - Linuxの備忘録とか・・・(目次へ)

    先読みとは、page単位の実際の読込みサイズを拡大して読込む事で、ブロックデバイス登録でblk_alloc_queue_node()がコールされる際、BIOリストが作成されるrequest_queueq->backing_dev_info.ra_pagesに先読みサイズ最大値が設定されます。先読みサイズ最大値ra_pagesは、実読込みサイズ+先読みサイズで、実サイズを読み込んで、先読みサイズ分を読み込むのでなく、読み込み際は、実サイズ/読み込みサイズ関係なく、両者を合わせたサイズ値で読み込みます。 最大サイズのデフォルトはVM_MAX_READAHEAD=128で、page数(VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE=32 pageとなります。ブロックデバイススペシャルファイルのioctl()のBLKRASETで設定できます。この先読みサイズ情

  • perf + Flame Graphs で Linux カーネル内のボトルネックを特定する - ablog

    Linuxでddで1GBのファイルを作成し perf でプロファイリングし、Flame Graph (炎のグラフ?)にして可視化したものです。 Flame Graphs は perf(Linux)、SystemTap(Linux)、DTrace(Solaris、Oracle Linux(UEK)、Mac OS X、FreeBSD)、XPerf.exe(Windows) などでのプロファイリング結果を可視化して最も使われているコードパスを早く正確に特定することができます。実体はプロファイリング結果をグラフ(SVG)に変換する Perl スクリプトです。 下から上に行くほどコールスタックが深く、左から関数名のアルファベット順でソートされています。一番上で横幅が広い関数がCPUを長く使っています。今回は "_aesni_enc1" つまり暗号化がボトルネックになっていることがわかります。 システ

    perf + Flame Graphs で Linux カーネル内のボトルネックを特定する - ablog
  • LVM のパーティショニングを動的に変更する : まだプログラマーですが何か?

    以下その手順を紹介しますが、大まかにはこのような手順をとります: (1) /dev/mapper/VolGroup-lv_var を縮小 (2) /dev/mapper/VolGroup-lv_root を拡大 逆の手順は成立しないことを理解してください。最初にいきなりルートファイルを拡大しようとしてもディスクそのものに未使用の領域がない限りは足りなくなります。まずはどこかを減らして余りを作り、その余りを別のパーティションに追加する、という順序が必要になります。 というわけで、まずは (1) を行います。パーティションの縮小は(そのパーティション先にもよりますが)シングルユーザーモードで起動する必要があります。システムを再起動し、Linux の起動画面になったら何かキーを押してd自動ブートのカウントダウンを止めます: この画面で E キーを押して起動モードの編集画面に移動します。そして "

    LVM のパーティショニングを動的に変更する : まだプログラマーですが何か?
  • 1