本書著眼于企業(yè)應用,以讀者能夠完成企業(yè)Linux操作系統(tǒng)調優(yōu)為出發(fā)點,以實踐項目為導向和基礎,注重實操過程,體現(xiàn)實踐過程教學的教學理念。 本書以Red Hat Enterprise 8.0為平臺,對企業(yè)級Linux操作系統(tǒng)的性能監(jiān)控和性能調整進行詳細講解。本書教學項目包括: 深入理解Linux操作系統(tǒng)、監(jiān)控工具、Benchmark工具、分析性能瓶頸、調整操作系統(tǒng)五部分,講解一個完整的Linux操作系統(tǒng)性能調優(yōu)過程。 本書可作為高等院校計算機應用專業(yè)和網(wǎng)絡技術專業(yè)理論與實踐一體化教材,也可作為Linux系統(tǒng)管理和網(wǎng)絡管理領域的自學指導書。
在云計算/大數(shù)據(jù)領域:互聯(lián)網(wǎng)產(chǎn)業(yè)的迅猛發(fā)展,促使云計算、大數(shù)據(jù)產(chǎn)業(yè)的形成并快速發(fā)展,云計算、大數(shù)據(jù)作為一個基于開源軟件的平臺,Linux占據(jù)了核心優(yōu)勢;據(jù)Linux基金會的研究,86%的企業(yè)已經(jīng)使用Linux操作系統(tǒng)進行云計算、大數(shù)據(jù)平臺的構建。
隨著計算機網(wǎng)絡技術的飛速發(fā)展,Linux操作系統(tǒng)的相關技術不斷推陳出新。目前,市場上的相關書籍和教材大多只介紹Linux操作系統(tǒng)的基本配置,而對Linux操作系統(tǒng)性能調優(yōu)方面的講解較少,以Red Hat Enterprise 8.0為平臺的書籍更少。因此,作者撰寫了這本以Red Hat Enterprise 8.0為平臺的介紹Linux操作系統(tǒng)性能調優(yōu)的教材,以彰顯調整和優(yōu)化Linux操作系統(tǒng)性能的重要性。
另一方面,作者已出版《Linux操作系統(tǒng)基本原理與應用》《Linux網(wǎng)絡服務器配置、管理與實踐教程》《Linux系統(tǒng)網(wǎng)絡服務器組建、配置和管理實訓教程》等書籍,本書的出版將擴大對Linux的研究廣度。
本書由周奇、周冠華共同完成。本書的作者均具有多年Linux操作系統(tǒng)課程教學經(jīng)驗和IT項目經(jīng)驗,同時指導和帶領學生參加過相關省級網(wǎng)絡系統(tǒng)管理賽項。
由于作者水平有限,書中難免有不妥和錯誤之處,敬請廣大讀者批評指正。作者2022年8月于廣州
第1章深入理解Linux操作系統(tǒng)1
1.1Linux進程管理2
1.1.1進程的概念2
1.1.2進程的生命周期2
1.1.3線程的概念3
1.1.4進程優(yōu)先級和Nice等級4
1.1.5上下文切換5
1.1.6中斷處理5
1.1.7進程狀態(tài)6
1.1.8進程的內存段7
1.1.9Linux CPU調度程序8
1.2Linux內存體系結構9
1.2.1物理內存和虛擬內存10
1.2.2虛擬內存管理11
1.3Linux文件系統(tǒng)14
1.3.1虛擬文件系統(tǒng)14
1.3.2文件系統(tǒng)日志14
1.3.3Ext215
1.3.4Ext316
1.3.5Ext417
1.3.6XFS20
1.3.7Btrfs21
1.3.8JFS22
1.3.9ReiserFS22
1.4Linux磁盤I/O子系統(tǒng)22
1.4.1I/O子系統(tǒng)的體系結構22
1.4.2Cache23◆Linux操作系統(tǒng)性能調優(yōu)目錄
1.4.3塊層25
1.4.4I/O設備驅動程序27
1.4.5RAID與文件系統(tǒng)28
1.5Linux網(wǎng)絡子系統(tǒng)29
1.5.1網(wǎng)絡化的實現(xiàn)29
1.5.2TCP/IP32
1.5.3Offload34
1.5.4Bonding模塊35
1.6Linux性能度量標準35
1.6.1處理器的度量標準35
1.6.2內存的度量標準36
1.6.3塊設備的度量標準37
1.6.4網(wǎng)絡接口的度量標準37
第2章監(jiān)控工具38
2.1監(jiān)控工具概述38
2.2常用監(jiān)控工具38
2.3常用監(jiān)控工具的使用39
2.3.1top39
2.3.2uptime41
2.3.3ps、pstree42
2.3.4free47
2.3.5mpstat50
2.3.6vmstat52
2.3.7iostat56
2.3.8netstat、ss60
2.3.9sar67
2.3.10numastat85
2.3.11pmap86
2.3.12iptraf89
2.3.13strace和ltrace92
2.3.14gnuplot98
2.3.15Gnome System Monitor107
第3章Benchmark工具120
3.1UNIXBench122
3.1.1安裝與運行123
3.1.2Run的用法123
3.2STREAM124
3.3Bonnie 129
第4章分析性能瓶頸134
4.1識別系統(tǒng)瓶頸134
4.1.1收集信息134
4.1.2分析服務器性能136
4.2CPU瓶頸136
4.2.1查找CPU瓶頸137
4.2.2SMP137
4.2.3性能調整選項138
4.3內存瓶頸138
4.3.1查找內存瓶頸138
4.3.2性能調整選項140
4.4磁盤瓶頸140
4.4.1查找磁盤瓶頸140
4.4.2性能調整選項142
4.5網(wǎng)絡瓶頸142
第5章調整操作系統(tǒng)143
5.1調整原則143
5.2安裝注意事項144
5.2.1安裝144
5.2.2檢查當前的配置145
5.2.3最小化資源使用151
5.2.4SELinux155
5.2.5編譯內核157
5.3更改內核參數(shù)158
5.3.1proc文件系統(tǒng)158
5.3.2存儲參數(shù)的位置159
5.3.3使用sysctl命令160
5.4調整處理器子系統(tǒng)161
5.4.1調整進程優(yōu)先級161
5.4.2CPU親和力162
5.4.3平衡中斷166
5.4.4NUMA系統(tǒng)167
5.5調整內存子系統(tǒng)171
5.5.1內存回收(設置內核交換和刷新臟數(shù)據(jù)行為)171
5.5.2調整swap173
5.5.3HugeTLBfs176
5.5.4內核同頁合并179
5.6調整磁盤子系統(tǒng)181
5.6.1安裝Linux前的硬件注意事項182
5.6.2I/O調度的調整和選擇184
5.6.3文件系統(tǒng)的選擇和調整188
5.6.4虛擬化存儲193
5.7調整網(wǎng)絡子系統(tǒng)195
5.7.1網(wǎng)卡綁定195
5.7.2巨幀197
5.7.3速度與雙工模式199
5.7.4增加網(wǎng)絡緩沖區(qū)200
5.7.5增加數(shù)據(jù)包隊列203
5.7.6增加傳輸隊列長度202
5.7.7配置offload203
5.7.8Netfilter對性能的影響206
5.7.9流量特性的注意事項208
5.7.10額外的TCP/IP調整210
5.8限制資源使用212