#影響Linux性能的CPU、內存、磁盤、網絡等因素分析
1.系統硬件資源:CPU,多核與超線程
消耗CPU的業務:動態WEB服務,Mail服務器
2.內存:物理內存與swap的取舍,64操作系統
消耗內存的業務:內存數據庫(Redis、hbase、mongodb)
3.磁盤:RAID技術(RAID0/1/5/10),SSD
消耗磁盤的業務:數據庫服務器
4.網絡帶寬:網卡/交換機/雙網卡綁定
消耗帶寬的業務:hadoop平臺,視頻業務平臺
#影響Linux性能的操作系統相關資源分析
1.系統安裝優化
磁盤分區,RAID設置,swap設置
2.內核參數優化
ulimit -n 最大打開文件數
ulimit -u 最大用戶數
3.文件系統優化
ext2:linux下標準文件系統,無日志記錄(inode)功能
ext3:在ext2基礎上增加了日志記錄功能(inode),僅支持32000個目錄
ext4: ext3的后續版本,linux2.6.28內核開始支持,無限子目錄支持,快速fsck
xfs:高性能文件系統,linux3.10內核開始默認支持
讀操作頻繁首選:ext4 寫操作頻繁首選:xfs
#系統性能調優之CPU性能評估工具與優化經驗
1.cpu性能評估工具
vmstat(默認系統自帶)
vmstat 3 5?? ?表示每3s更新一次輸出信息,統計5次后停止輸出
[root@zabbix ~]# vmstat 2 3
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r? b?? swpd?? free?? buff? cache?? si?? so??? bi??? bo?? in?? cs us sy id wa st
0? 0????? 0 60072824 246332 3805844??? 0??? 0???? 0??? 25??? 1??? 1? 0? 0 100? 0? 0
1? 0????? 0 60072848 246332 3805844??? 0??? 0???? 0??? 24? 698? 729? 0? 0 100? 0? 0
0? 0????? 0 60073080 246332 3805844??? 0??? 0???? 0??? 28 1445 1034? 0? 0 100? 0? 0
procs?? ?r列表示運行和等待cpu時間片的進程數,這個如果長期大于系統cpu個數,說明cpu不足,需要增加cpu
b列表示在等待資源的進程數,比如等待I/O,或者內存交換等
procs標準:?? ?r 不超過cpu進程數
memory標準:
swap標準:?? ?si,so長期不為0,說明內存不足,需要加內存
io標準:?? ?bi+bo超過1000,而且wa值較高,說明磁盤IO有問題,應提高磁盤讀寫性能
system標準:?? ?us長期超過50%,用戶進程消耗cpu,需要考慮優化程序或算法
sy長期超過50%,內核消耗的cpu資源很多
us+sy長期超過80%,說明可能cpu資源部足
id cpu空閑的百分比
wa 參考值20%,如果超過20%,說明io等待嚴重
cpu重點參考:r?? ?cs? us? sy id? wa值的大小
2.iostat工具(需要安裝sysstat工具包)
iostat -c 3 5?? 顯示cpu使用情況
iostat -d 3 5?? ?顯示磁盤使用情況
# -r內存,-ucpu -d磁盤
tps 表示每秒到物理磁盤的傳送數,也就是每秒的I/O流量,一個傳送就是一個I/O請求,多個邏輯請求可以被合并為一個物理I/O請求
sar -r 3 5
sar -u 3 5
pidstat -r -p 3 5
#系統性能調優之內存性能、磁盤性能評估工具與優化經驗
#系統性能調優之網絡性能評估工具與系統性能分析標準
mtr www.baidu.com
tracroute www.baidu.com
netstat -r?? ?查看網絡接口狀態
netstat -i ?? ?c查看網絡路由