国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux性能監控與調優技巧

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2025-08-18 11:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Linux性能優化:系統監控與調優技巧全解析

3年運維老司機的血淚總結:從菜鳥到專家,這些性能調優技巧讓我的系統性能提升300%!

前言:性能調優的真正價值

作為一名在一線摸爬滾打多年的運維工程師,我見過太多因為性能問題導致的線上故障。凌晨2點被告警電話吵醒,面對CPU飆升到100%、內存不足、磁盤IO瓶頸等問題時的那種焦慮,相信每個運維人都深有體會。

今天這篇文章,我將毫無保留地分享實戰中最有效的Linux性能監控與調優技巧,讓你從"救火隊員"變身"性能專家"!

一、性能監控的"黃金法則"

監控四大維度

在開始任何優化工作之前,我們需要建立完整的監控體系。根據我的實戰經驗,Linux性能監控主要關注四個維度:

1. CPU性能監控

# 實時查看CPU使用情況
top -p $(pgrep -d','your_process_name)

# 查看CPU詳細統計信息
sar -u 1 10

# 查看特定進程的CPU使用
pidstat -u -p PID 1

實戰技巧:很多新手只看CPU總體使用率,但真正的專家會關注以下指標:

?%usr: 用戶空間CPU使用率

?%sys: 系統空間CPU使用率

?%iowait: 等待IO的CPU時間百分比

?%idle: CPU空閑時間百分比

當%iowait持續超過20%時,通常意味著存在磁盤IO瓶頸!

2. 內存性能監控

# 查看內存使用詳情
free -h

# 實時監控內存變化
watch -n 1'free -h'

# 查看進程內存使用
ps aux --sort=-%mem |head-10

核心監控指標解讀

?Available內存:這是最重要的指標,而不是Free內存

?Buffer/Cache使用率:Linux會智能緩存,這部分內存可以被回收

?Swap使用情況:一旦開始使用Swap,性能會顯著下降

3. 磁盤IO監控

# 查看磁盤IO統計
iostat -x 1 5

# 實時監控磁盤活動
iotop

# 查看文件系統使用情況
df-h

關鍵指標警戒線

?%util > 80%: 磁盤可能成為瓶頸

?await > 10ms: IO響應時間過長

?r/s + w/s > 1000: IOPS過高需要優化

4. 網絡性能監控

# 查看網絡連接狀態
ss -tuln

# 監控網絡流量
iftop

# 查看網絡統計信息
cat/proc/net/dev

建立監控基線

很多運維工程師忽略了這一點:沒有基線的監控是盲目的!

建議為每個關鍵指標建立正常運行時的基線值:

# 創建性能基線腳本
#!/bin/bash
DATE=$(date+%Y%m%d_%H%M%S)
BASELINE_DIR="/opt/performance_baseline"

mkdir-p$BASELINE_DIR

# 收集基線數據
{
 echo"=== CPU Baseline ==="
  sar -u 1 60
 echo"=== Memory Baseline ==="
  free -h
 echo"=== Disk IO Baseline ==="
  iostat -x 1 10
 echo"=== Network Baseline ==="
  ss -s
} >$BASELINE_DIR/baseline_$DATE.log

二、CPU性能調優實戰

CPU調優的三大殺器

1. 進程優先級調整

很多人知道nice命令,但真正用好的人不多:

# 降低CPU密集型任務的優先級
nice-n 19 your_cpu_intensive_command

# 對已運行的進程調整優先級
renice -n 10 -p PID

# 實時調整進程優先級(推薦)
ionice -c3 -p PID # 設置為空閑IO調度

實戰案例:某電商網站備份任務導致CPU使用率飆升,影響用戶訪問。通過將備份進程的nice值設置為19,CPU使用率從90%降至30%,用戶響應時間恢復正常。

2. CPU親和性設置

這是高級運維工程師必備技能:

# 查看進程CPU親和性
taskset -cpPID

# 綁定進程到特定CPU核心
taskset -cp0,1 PID

# 啟動程序時指定CPU親和性
taskset -c 0-3 your_program

優化策略

? 將網絡中斷綁定到特定CPU核心

? 將應用程序綁定到其他CPU核心

? 避免進程在CPU核心間頻繁遷移

3. 中斷優化

這是很多運維工程師容易忽略的高級技巧:

# 查看中斷分布
cat/proc/interrupts

# 手動設置網卡中斷親和性
echo2 > /proc/irq/24/smp_affinity

# 使用irqbalance自動優化
systemctlenableirqbalance
systemctl start irqbalance

CPU調優效果驗證

調優后,使用以下方法驗證效果:

# 壓力測試
stress-ng --cpu 4 --timeout60s

# 對比調優前后的性能數據
sar -u 1 10 > after_optimization.log

三、內存優化的"獨門秘籍"

內存調優四部曲

第一步:內存使用分析

# 查看系統內存詳細信息
cat/proc/meminfo

# 分析內存使用最多的進程
ps aux --sort=-%mem |head-20

# 查看共享內存使用情況
ipcs -m

第二步:Swap優化

Swap優化是性能提升的關鍵點:

# 查看當前swap使用情況
swapon -s

# 調整swap使用策略(重要!)
echo10 > /proc/sys/vm/swappiness # 降低swap使用傾向

# 永久設置
echo'vm.swappiness = 10'>> /etc/sysctl.conf

實戰經驗:默認swappiness值為60,這對服務器來說太高了。我建議:

? 數據庫服務器:設置為1-5

? Web應用服務器:設置為10-20

? 一般應用服務器:設置為10-30

第三步:內存回收策略優化

# 手動釋放緩存(緊急情況使用)
echo3 > /proc/sys/vm/drop_caches

# 優化內存分配策略
echo0 > /proc/sys/vm/overcommit_memory
echo50 > /proc/sys/vm/overcommit_ratio

# 永久設置
cat>> /etc/sysctl.conf <

第四步:大頁內存優化

對于內存密集型應用,大頁內存可以顯著提升性能:

# 查看大頁內存狀態
cat/proc/meminfo | grep -i huge

# 設置大頁內存
echo1024 > /proc/sys/vm/nr_hugepages

# 永久設置
echo'vm.nr_hugepages = 1024'>> /etc/sysctl.conf

內存泄漏檢測

這是高級運維工程師的必備技能:

# 使用valgrind檢測內存泄漏
valgrind --tool=memcheck --leak-check=full your_program

# 監控進程內存使用趨勢
whiletrue;do
  ps -o pid,ppid,cmd,%mem,%cpu --sort=-%mem |head-10
 echo"---"
 sleep5
done

四、磁盤IO優化實戰

IO調優的"三板斧"

1. 文件系統選擇與優化

不同的文件系統性能差異巨大:

# 推薦的文件系統掛載選項
mount -o noatime,nodiratime,barrier=0 /dev/sdb1 /data

# 永久設置
echo'/dev/sdb1 /data ext4 defaults,noatime,nodiratime,barrier=0 0 0'>> /etc/fstab

文件系統性能對比(基于我的實測數據):

?XFS: 大文件讀寫性能最佳,推薦用于數據存儲

?EXT4: 兼容性最好,中小文件性能優秀

?Btrfs: 功能豐富但性能一般,適合特殊需求

2. IO調度器優化

這是很多運維工程師忽略的重要優化點:

# 查看當前IO調度器
cat/sys/block/sda/queue/scheduler

# 設置IO調度器
echonoop > /sys/block/sda/queue/scheduler

# 永久設置
echo'echo noop > /sys/block/sda/queue/scheduler'>> /etc/rc.local

調度器選擇建議

?SSD硬盤: 使用noop或deadline

?機械硬盤: 使用cfq或deadline

?虛擬化環境: 使用noop

3. 磁盤參數優化

# 調整磁盤預讀參數
blockdev --setra 4096 /dev/sda

# 優化磁盤隊列深度
echo32 > /sys/block/sda/queue/nr_requests

# 禁用磁盤節能模式
hdparm -B 255 /dev/sda

IO性能監控腳本

這是我在生產環境中使用的監控腳本:

#!/bin/bash
# IO性能實時監控腳本

whiletrue;do
  clear
 echo"=== 磁盤IO實時監控 ==="
 echo"時間:$(date)"
 echo
 
 # 顯示磁盤使用率
  iostat -x 1 1 | grep -E"(Device|sd)"
 echo
 
 # 顯示IO最高的進程
 echo"=== IO使用率最高的進程 ==="
  iotop -b -n1 -a |head-15
 echo
 
 sleep2
done

五、網絡性能優化秘籍

網絡調優的核心技巧

1. TCP參數優化

這些參數調整可以顯著提升網絡性能:

# 優化TCP連接參數
cat>> /etc/sysctl.conf <

2. 網絡中斷優化

# 查看網絡中斷分布
cat/proc/interrupts | grep eth0

# 設置網絡中斷CPU親和性
echo2 > /proc/irq/24/smp_affinity

# 啟用多隊列網卡支持
ethtool -L eth0 combined 4

3. 防火墻優化

# 優化iptables規則順序(將常用規則放在前面)
iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT

# 使用ipset提高大量IP處理效率
ipset create blacklisthash:ip
ipset add blacklist 192.168.1.100
iptables -A INPUT -mset--match-set blacklist src -j DROP

網絡性能監控

# 實時網絡流量監控
#!/bin/bash
INTERFACE="eth0"

whiletrue;do
  RX1=$(cat/sys/class/net/$INTERFACE/statistics/rx_bytes)
  TX1=$(cat/sys/class/net/$INTERFACE/statistics/tx_bytes)
 sleep1
  RX2=$(cat/sys/class/net/$INTERFACE/statistics/rx_bytes)
  TX2=$(cat/sys/class/net/$INTERFACE/statistics/tx_bytes)
 
  RX_RATE=$(((RX2-RX1)/1024))
  TX_RATE=$(((TX2-TX1)/1024))
 
 echo"接收速率:${RX_RATE}KB/s | 發送速率:${TX_RATE}KB/s"
done

六、綜合性能調優案例

真實案例:電商網站性能優化

背景:某電商網站在促銷期間出現嚴重性能問題:

? 頁面響應時間從200ms增加到5秒

? CPU使用率持續在90%以上

? 數據庫查詢超時頻繁

? 用戶投訴激增

問題分析過程

# 1. 系統整體性能分析
top -c
sar -u -r -b 1 10

# 2. 數據庫性能分析
mysqladmin processlist
show full processlist;

# 3. 網絡連接分析 
ss -tuln |wc-l
netstat -an | grep TIME_WAIT |wc-l

優化措施與效果

1.CPU優化

# 調整MySQL進程優先級
renice -10 $(pgrep mysqld)

# 綁定MySQL到特定CPU核心
taskset -cp0-3 $(pgrep mysqld)

# 優化Apache進程數量
vim /etc/httpd/conf/httpd.conf
# MaxRequestWorkers 400 → 200

效果:CPU使用率從90%降至60%

2.內存優化

# 調整MySQL緩沖池
vim /etc/mysql/my.cnf
# innodb_buffer_pool_size = 8G → 12G

# 減少swap使用
echo5 > /proc/sys/vm/swappiness

效果:數據庫查詢時間減少40%

3.磁盤IO優化

# 更換IO調度器
echodeadline > /sys/block/sda/queue/scheduler

# 優化文件系統掛載參數
mount -o remount,noatime,nodiratime /dev/sda1 /var/lib/mysql

效果:磁盤IO wait從30%降至5%

最終結果

? 頁面響應時間:5秒 → 300ms

? 系統負載:從4.5降至1.2

? 用戶滿意度顯著提升

? 成功支撐了2倍的并發訪問量

七、自動化監控腳本

一鍵性能檢查腳本

基于多年實戰經驗,我開發了這個一鍵性能檢查腳本:

#!/bin/bash
# Linux性能一鍵檢查腳本
# 作者:運維老司機
# 版本:v2.0

echo"================== Linux性能檢查報告 =================="
echo"檢查時間:$(date)"
echo"主機名:$(hostname)"
echo"內核版本:$(uname -r)"
echo

# 1. CPU性能檢查
echo"【CPU性能分析】"
CPU_USAGE=$(top -bn1 | grep"Cpu(s)"| awk'{print $2}'|cut-d'%'-f1)
CPU_CORES=$(nproc)
LOAD_1MIN=$(uptime| awk -F'load average:''{print $2}'| awk'{print $1}'|tr-d',')

echo"CPU核心數:$CPU_CORES"
echo"CPU使用率:${CPU_USAGE}%"
echo"1分鐘負載:$LOAD_1MIN"

if(( $(echo "$LOAD_1MIN>$CPU_CORES" | bc -l) ));then
 echo" 警告:系統負載過高!"
fi
echo

# 2. 內存性能檢查
echo"【內存性能分析】"
TOTAL_MEM=$(free -m | awk'NR==2{print $2}')
USED_MEM=$(free -m | awk'NR==2{print $3}')
FREE_MEM=$(free -m | awk'NR==2{print $4}')
AVAILABLE_MEM=$(free -m | awk'NR==2{print $7}')

MEM_USAGE=$(echo"scale=1;$USED_MEM*100/$TOTAL_MEM"| bc)

echo"總內存:${TOTAL_MEM}MB"
echo"已使用:${USED_MEM}MB (${MEM_USAGE}%)"
echo"可用內存:${AVAILABLE_MEM}MB"

if(( $(echo "$MEM_USAGE>80" | bc -l) ));then
 echo" 警告:內存使用率過高!"
fi
echo

# 3. 磁盤性能檢查
echo"【磁盤性能分析】"
df-h | grep -E'^/dev/'|whilereadline;do
  USAGE=$(echo$line| awk'{print $5}'|tr-d'%')
  MOUNT=$(echo$line| awk'{print $6}')
 
 echo"$line"
 if["$USAGE"-gt 85 ];then
   echo" 警告:$MOUNT磁盤使用率過高 ($USAGE%)!"
 fi
done
echo

# 4. 網絡連接檢查
echo"【網絡連接分析】"
ESTABLISHED_CONN=$(ss -an | grep ESTAB |wc-l)
TIME_WAIT_CONN=$(ss -an | grep TIME-WAIT |wc-l)

echo"當前連接數:$ESTABLISHED_CONN"
echo"TIME_WAIT連接數:$TIME_WAIT_CONN"

if["$TIME_WAIT_CONN"-gt 5000 ];then
 echo" 警告:TIME_WAIT連接數過多!"
fi
echo

# 5. 進程資源使用TOP10
echo"【資源使用TOP10進程】"
echo"--- CPU使用率TOP10 ---"
ps aux --sort=-%cpu |head-11 |tail-10

echo
echo"--- 內存使用率TOP10 ---"
ps aux --sort=-%mem |head-11 |tail-10

echo
echo"================== 檢查完成 =================="

性能報告生成器

#!/bin/bash
# 性能報告生成器

REPORT_DATE=$(date+%Y%m%d_%H%M%S)
REPORT_FILE="/tmp/performance_report_$REPORT_DATE.html"

# 生成HTML報告
cat>$REPORT_FILE<


  Linux性能監控報告
  


  

Linux性能監控報告

生成時間: $(date)

主機名: $(hostname)

系統概覽

指標當前值狀態
CPU使用率$(top -bn1 | grep "Cpu(s)" | awk '{print $2}')正常
內存使用率$(free | awk 'NR==2{printf "%.1f%%", $3*100/$2}')正常
系統負載$(uptime | awk -F'load average:' '{print $2}')監控中

優化建議:定期執行性能檢查,建立監控基線,及時發現性能瓶頸。

EOF echo"性能報告已生成:$REPORT_FILE"

八、進階優化技巧

高級運維工程師必備技能

1. 內核參數調優

這些是我在生產環境中驗證過的最有效的內核參數:

# /etc/sysctl.conf 高性能配置
cat>> /etc/sysctl.conf <

2. 進程限制優化

# /etc/security/limits.conf
cat>> /etc/security/limits.conf <

3. 定制監控告警

#!/bin/bash
# 智能告警腳本

# 配置告警閾值
CPU_THRESHOLD=80
MEM_THRESHOLD=85
DISK_THRESHOLD=90
LOAD_THRESHOLD=4

# 檢查CPU使用率
check_cpu() {
  CPU_USAGE=$(top -bn1 | grep"Cpu(s)"| awk'{print $2}'|cut-d'%'-f1)
 if(( $(echo "$CPU_USAGE>$CPU_THRESHOLD" | bc -l) ));then
   echo"CPU告警: 使用率${CPU_USAGE}%,超過閾值${CPU_THRESHOLD}%"| 
    mail -s"服務器CPU告警"admin@company.com
 fi
}

# 檢查內存使用率
check_memory() {
  MEM_USAGE=$(free | awk'NR==2{printf "%.1f", $3*100/$2}')
 if(( $(echo "$MEM_USAGE>$MEM_THRESHOLD" | bc -l) ));then
   echo"內存告警: 使用率${MEM_USAGE}%,超過閾值${MEM_THRESHOLD}%"| 
    mail -s"服務器內存告警"admin@company.com
 fi
}

# 主函數
main() {
  check_cpu
  check_memory
 # 可以添加更多檢查函數
}

main

九、性能優化最佳實踐

我的"十字真經"

基于多年實戰經驗,我總結出性能優化的"十字真經":

1.監控先行:沒有監控數據,就沒有優化方向

2.基線建立:了解系統正常狀態下的性能指標

3.逐步優化:一次只調整一個參數,避免"組合拳"導致問題難定位

4.驗證效果:每次優化后都要驗證效果,記錄數據

5.回滾準備:任何優化都要準備回滾方案

6.文檔記錄:詳細記錄每次優化的過程和結果

7.定期review:定期檢查優化效果,持續改進

8.工具自動化:將常用的監控和優化腳本自動化

9.知識分享:團隊內分享優化經驗,避免重復踩坑

10.持續學習:技術在發展,性能優化技巧也要與時俱進

性能優化檢查清單

每日檢查項目

? 系統負載是否正常

? 內存使用率是否在合理范圍

? 磁盤空間是否充足

? 關鍵進程是否正常運行

每周檢查項目

? 審查系統性能趨勢

? 檢查日志是否有異常

? 驗證備份和恢復功能

? 更新監控基線數據

每月檢查項目

? 全面性能評估

? 容量規劃調整

? 優化參數微調

? 災備演練

結語:從"救火隊員"到"性能專家"的進階之路

作為一名在運維一線奮戰多年的工程師,我深知性能優化的重要性和復雜性。這篇文章濃縮了我多年來在生產環境中積累的寶貴經驗,每一個技巧都經過實戰驗證。

記住這幾個關鍵點

1. 性能優化是一個持續的過程,不是一錘子買賣

2. 監控和基線比任何單一的優化技巧都重要

3. 理解業務場景,針對性地進行優化

4. 保持學習的心態,技術在不斷發展

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11277

    瀏覽量

    224956
  • Linux
    +關注

    關注

    88

    文章

    11758

    瀏覽量

    219009
  • 磁盤
    +關注

    關注

    1

    文章

    398

    瀏覽量

    26470

原文標題:Linux性能優化:系統監控與調優技巧全解析

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    史上最全性能調總結

    在說什么是性能調之前,我們先來說一下,計算機的體系結構。
    的頭像 發表于 05-13 08:57 ?7240次閱讀
    史上最全<b class='flag-5'>性能</b><b class='flag-5'>調</b><b class='flag-5'>優</b>總結

    HBase性能調概述

    HBase性能調
    發表于 07-03 11:35

    infosphere CDC 性能調及MC性能指標監控

    infosphere CDC 性能調及MC性能指標監控
    發表于 09-07 09:26 ?4次下載
    infosphere CDC <b class='flag-5'>性能</b><b class='flag-5'>調</b><b class='flag-5'>優</b>及MC<b class='flag-5'>性能</b>指標<b class='flag-5'>監控</b>

    infosphere CDC性能調的文檔

    infosphere CDC性能調的文檔
    發表于 09-07 09:30 ?7次下載
    infosphere CDC<b class='flag-5'>性能</b><b class='flag-5'>調</b><b class='flag-5'>優</b>的文檔

    Linux查看資源使用情況和性能調常用的命令

    目錄 前言 top命令 htop命令 ps命令 free命令 vmstat命令 iosat命令 netstat命令 df命令 du命令 前言 一般來說,Linux性能調涉及CPU、內
    的頭像 發表于 11-12 17:54 ?5097次閱讀

    Linux用電功耗調的筆記分享

    整理一些Linux用電功耗調的筆記,分享給小伙伴,關于用電調個人覺得
    的頭像 發表于 06-23 15:19 ?5579次閱讀

    linux網絡棧監控調:數據接收

    linux 網絡棧的監控調上沒有捷徑可言,如果你想做有效的調,就必須搞清楚各個系統之間
    的頭像 發表于 03-25 16:44 ?2594次閱讀

    Linux性能調常見工具和堆棧解析

    ? Linux系統性能調涉及多個方面,包括內核參數調整、文件系統優化、網絡設置等。 ? 1. 內核參數調整:通過調整內核參數來提高系統性能
    的頭像 發表于 06-29 09:45 ?1715次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>性能</b><b class='flag-5'>調</b><b class='flag-5'>優</b>常見工具和堆棧解析

    jvm調工具有哪些

    JVM調是提高Java應用程序性能的重要手段,而JVM調工具則是輔助開發人員進行調
    的頭像 發表于 12-05 11:44 ?1993次閱讀

    鴻蒙開發實戰:【性能調組件】

    性能調組件包含系統和應用調框架,旨在為開發者提供一套性能
    的頭像 發表于 03-13 15:12 ?1388次閱讀
    鴻蒙開發實戰:【<b class='flag-5'>性能</b><b class='flag-5'>調</b><b class='flag-5'>優</b>組件】

    手把手教你如何調Linux網絡參數

    在高并發網絡服務場景中,Linux內核的默認網絡參數往往無法滿足需求,導致性能瓶頸、連接超時甚至服務崩潰。本文基于真實案例分析,從參數解讀、問題診斷到優化實踐,手把手教你如何調
    的頭像 發表于 05-29 09:21 ?964次閱讀

    Linux系統性能調方案

    關鍵要點預覽:本文將深入解析Linux系統性能瓶頸的根本原因,提供可直接落地的調方案,讓你的系統性能提升30-50%!
    的頭像 發表于 08-06 17:49 ?874次閱讀

    Linux內核參數調方案

    在高并發微服務環境中,網絡性能往往成為K8s集群的瓶頸。本文將深入探討如何通過精細化的Linux內核參數調,讓你的K8s節點網絡性能提升3
    的頭像 發表于 08-06 17:50 ?947次閱讀

    Linux網絡性能調方案

    在當今高并發、大流量的互聯網環境下,網絡性能往往成為系統的瓶頸。作為一名資深運維工程師,我在生產環境中遇到過無數次因為TCP/IP參數配置不當導致的性能問題。今天分享一套完整的Linux網絡
    的頭像 發表于 08-06 18:01 ?1326次閱讀

    Linux系統內核參數調實戰指南

    Linux 內核參數調是系統性能優化的核心環節。隨著云原生架構的普及和硬件性能的飛速提升,默認的內核參數配置往往無法充分發揮系統潛力。在高
    的頭像 發表于 01-28 14:27 ?426次閱讀