Linux Kernel Hacks:改善效能、提昇開發效率及節能的技巧與工具
- 作者:池田宗広,大岩尚宏,島本裕志//等
- 譯者:Studio Tib.
- 出版社:歐萊禮
- 出版日期:2014-01-27
- 語言:繁體中文
- ISBN10:9863470147
- ISBN13:9789863470144
- 裝訂:平裝 / 528頁 / 15.5 x 23 cm / 普通級 / 單色印刷 / 初版
Kernel 就是 OS 的核心。OS 的基本功能都是由 kernel 提供的。建立檔案、傳送封包等動作都是以 kernel
的功能完成。不過建立這些功能並不是單純的工作。儘管平常不會意識到,裡面深藏了許多高階技術。以檔案系統來說,或許會在放置檔案的時候考慮到極力減少磁碟搜尋動作,以網路的部份來說,或許會為路由表項目數龐大的情形做好準備,使得這種情形不會對系統整體造成太大的影響。記憶體管理、process 管理等部份也暗藏了各式各樣的技巧。看懂這些高階技術,正是 kernel hacking
的魅力之一。
不過最近的 Linux kernel 不再只提供基本的功能。隨著功能進化,它不斷實作了為某些領域特化的方便功能、還有許多獨特的功能。就算是 kernel hacker 應該也很少人能全部掌握吧。
本書將從進化至今的 Linux kernel 多數功能之中,選定許多人需要的、或是很有意思的功能,在說明這些工能的過程中,一併解釋內部的運作機制。同時也會討論到善用這些功能所需的工具與設定方法、調整技巧。
「節能」是本書會討論到的主題之一。不僅會說明使用方式,還會談到節能的思考方向、以及它與硬體的關聯。另外也會涵蓋最近受到注目的虛擬化、資源管理、納入標準檔案系統之一的 ext4 等等,廣泛涵蓋各種經典功能與新功能。經典功能的部份會盡可能調查最新的原始碼,討論變更點與新增功能。這部份是文件找不到、不探索 kernel
內部就無法得知的資訊,所以就算已經知道這些功能的讀者,或許也會有新發現。另外本書也會介紹與 kernel 有關的工具,其中包含 gcore 這個對重要的系統來說十分需要的工具。
最新的 Linux kernel 實作了強力的追蹤 (trace)、效能量測 (profiling) 功能。用起來很方便,也提供許多功能。不僅能勝任原先的目的,在 kernel hacking 的時候也大有幫助。對 kernel hacker 老手來說,應該也有參考價值。
本書包含許多在現場也能立刻派上用場的完整實例。如果讀者想完整發揮 kernel 功能的話,本書應該十分具有參考價值。
執筆群
監修者前言
寫在前面
Chapter 1 Kernel 入門
1. 取得 Linux kernel
2. 編譯 Linux kernel
3. Kernel module 的作法
4. 使用 Git
5. 以 checkpatch.pl 檢查 patch 的格式
6. 以 localmodconfig 縮短 kernel 編譯時間
Chapter 2 資源管理
8. Scheduling Policy(排程策略)
9. RT Group Scheduling 與 RT Throttling
10. Fair Group Scheduling
11. Cpuset
12. 以 Memory Cgroup 限制記憶體使用量
13. 設定 Block I/O controller 的 I/O 優先度
14. 虛擬記憶體系統調校
15. ramzswap
16. OOM Killer 的動作與機制
Chapter 3 檔案系統
17. 運用 ext4
18. 轉移到 ext4
19. ext4 調校
20. 以 fio 量測 I/O 效能
21. FUSE
Chapter 4 網路
22. 網路頻寬控制
23. TUN/TAP 裝置
24. bridge 裝置
25. VLAN
26. bonding 驅動程式
27. Network Drop Monitor
Chapter 5 虛擬化
28. 使用 Xen
29. 使用 KVM
30. 不使用 DVD 安裝 OS
31. 變更虛擬 CPU 配置方法提昇性能
32. 使用 Extended Page Tables(EPT)提昇 guest OS 性能
33. 以 IOMMU 加速 guest OS
34. 以 IOMMU+SR-IOV 加速 guest OS
35. 以SR-IOV 控制頻寬
36. 以 KSM 節省記憶體
37. 掛載 guest OS 的磁碟
38. 從 guest OS 識別虛擬機器環境
39. guest OS 除錯
Chapter 6 節能
40. ACPI
41. 利用 ACPI S-state
42. 利用 CPU 節能(C、P-state)
43. PCI 裝置 hotplug
44. 虛擬化環境下的節能
45. 遠端管理機器電源
46. USB 電力管理
47. 顯示器節能
48. 削減網路裝置使用的電力
49. 關掉鍵盤 LED 省電?
50. PowerTOP
51. 硬碟節能
Chapter 7 除錯
52. SysRq 按鍵(Magic System Request Key)
53. 使用 diskdump 採取 kernel crash dump
54. 使用 Kdump 採取 kernel crash dump
55. 進行 crash 測試
56. IPMI watchdog timer
57. NMI watchdog timer
58. soft lockup
59. crash 指令
60. coredump filter
61. 為 kernel crash dump 包含的 user mode process 建立 process core dump
62. 以 lockdep 檢查系統的 deadlock
63. 檢查 kernel 的記憶體釋放漏失
Chapter 8 Pro_ling.Trace
64. 以 perf tools 量測效能(之一)
65. 以 perf tools 量測效能(之二)
66. 對 kernel 與 process 進行各種 profiling
67. 追蹤 kernel 函式呼叫過程
68. ftrace 的 plug-in tracer
69. 紀錄 kernel 的運作事件
70. 使用 trace-cmd 進行 kernel tracing
71. 為 kernel 加入動態 trace event
72. 使用 SystemTap 進行 kernel tracing
73. 以 SystemTap 撰寫對話形式的程式
74. 重複利用 SystemTap 的 script
75. 運用 SystemTap
索引