第一線で活躍するカーネルハッカーたちが贈る渾身の書下ろしHack集。カーネルハックの神髄と魅力を紹介します。カーネルの基本から、CPU/メモリ/プロセスなどのリソース管理、ファイルシステム、ネットワーク、仮想化、省電力、デバッグ、プロファイリング、トレースなど、扱うトピックは多岐に渡ります。カーネルチューニングの際、大いに役立つ実用的なHackを満載。カーネルハックの醍醐味が存分に味わえる一冊です。
Linuxカーネル Hacks
―パフォーマンス改善、開発効率向上、省電力化のためのテクニック
池田 宗広、大岩 尚宏、島本 裕志、竹部 晶雄、平松 雅巳 著、高橋 浩和 監修
関連ファイル
正誤表
書籍発行後に気づいた誤植や更新された情報を掲載しています。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷数をご確認の上、ご利用ください。
第1刷正誤表
LinuxカーネルHacks 第1刷正誤表
2012年3月16日更新
|
目次
目次
クレジット
監修者まえがき
はじめに
1章 カーネル入門
1. Linuxカーネルを入手する
2. Linuxカーネルをコンパイルする
3. カーネルモジュールの作り方
4. Gitを使う
5. checkpatch.plでパッチの書式をチェックする
6. localmodconfigでカーネルのコンパイル時間を短縮する
2章 リソース管理
7. Cgroup、Namespace、Linuxコンテナ
8. スケジューリングポリシー
9. RT Group SchedulingとRT Throttling
10. Fair Group Scheduling
11. cpuset
12. Memory Cgroupでメモリ使用量を制限する
13. Block I/OコントローラでI/Oの優先度を設定する
14. 仮想記憶サブシステムのチューニング
15. ramzswap
16. OOM Killerの動作と仕組み
3章 ファイルシステム
17. ext4を利用する
18. ext4への移行
19. ext4のチューニング
20. fioでI/Oのベンチマークを行う
21. FUSE
4章 ネットワーク
22. ネットワークの帯域制御
23. TUN/TAPデバイス
24. ブリッジデバイス
25. VLAN
26. bondingドライバ
27. Network Drop Monitor
5章 仮想化
28. Xenを使う
29. KVMを使う
30. DVDを使わずにOSをインストールする
31. 仮想CPUの割り当て方法を変更して性能を上げる
32. Extended Page Tables(EPT)を利用してゲストOSの性能を上げる
33. IOMMUでゲストOSを高速化
34. IOMMU+SR-IOVでゲストOSを高速化
35. SR-IOVで帯域制御
36. KSMでメモリを節約する
37. ゲストOSのディスクをマウントする
38. ゲストOSから仮想マシン環境を識別する
39. ゲストOSをデバッグする
6章 省電力
40. ACPI
41. ACPI Sステートを利用する
42. CPUによる省電力(C, Pステート)を利用する
43. PCIデバイスのホットプラグ
44. 仮想化環境下での省電力
45. リモートからマシンの電源を管理する
46. USBの電力管理
47. ディスプレイの省電力
48. ネットワークデバイスによる電力削減
49. キーボードのLEDを消して省電力?
50. PowerTOP
51. ハードディスクの省電力
7章 デバッグ
52. SysRqキー(Magic System Request Key)
53. diskdumpを使ってカーネルクラッシュダンプを採取する
54. Kdumpを使ってカーネルクラッシュダンプを採取する
55. クラッシュテストを行う
56. IPMIウォッチドッグタイマ
57. NMIウォッチドッグタイマ
58. soft lockup
59. crashコマンド
60. コアダンプフィルタ
61. カーネルクラッシュダンプに含まれるユーザモードプロセスの
プロセスコアダンプを作成する
62. lockdepでシステムのデッドロックを調べる
63. カーネルのメモリ解放漏れ検出
8章 プロファイリング、トレース
64. perf toolsを使ったプロファイリング(その1)
65. perf toolsを使ったプロファイリング(その2)
66. カーネルやプロセスの様々なプロファイリングを行う
67. カーネルの関数呼び出しをトレースする
68. ftraceのプラグイントレーサ
69. カーネルの動作イベントを記録する
70. trace-cmdを使ったカーネルトレース
71. 動的トレースイベントをカーネルに追加する
72. SystemTapを使ったカーネルトレーシング
73. SystemTapで対話的なプログラムを書く
74. SystemTapのスクリプトを再利用する
75. SystemTapを運用する
索引