Linux 進階用法

一、系統性能調優

系統性能調優是 Linux 管理中的關鍵技能,它能顯著提升系統在不同應用場景下的表現。通過針對性的調優,可以解決資源瓶頸問題,提高服務響應速度,優化資源利用率。

(一)CPU 性能調優

知識點詳解

1. CPU 信息查看與分析

  • lscpu 命令:提供 CPU 架構、核心數、線程數、緩存大小等詳細信息
    • 示例:lscpu | grep -E 'Model name|Socket|Core|Thread'
  • top 命令:實時顯示 CPU 使用率、進程狀態和資源占用情況
    • 關鍵指標:%us(用戶空間)、%sy(系統空間)、%id(空閑)
  • htop 命令:增強版的 top,提供彩色顯示和鼠標支持
    • 可以直觀查看 CPU 每個核心的負載情況

2. 進程調度優化

  • CFS 調度器:完全公平調度器,保證所有進程按權重公平獲取 CPU 時間
  • 優先級調整:
    • nice 命令:啟動新進程時設置優先級(范圍 -20 到 19)
      • 示例:nice -n 15 ./long_running_script.sh
    • renice 命令:調整已運行進程的優先級
      • 示例:renice -n 10 -p 1234
  • CPU 親和性設置:
    • taskset 命令:將進程綁定到特定 CPU 核心
    • 示例:taskset -c 0,1 ./cpu_intensive_app

3. 高級調優工具

  • perf 工具:性能分析工具,可檢測 CPU 熱點
  • tuned 服務:提供預定義的性能優化配置集

注意事項與最佳實踐

  1. 優先級設置需謹慎

    • 避免將非關鍵進程設為最高優先級(-20)
    • 關鍵系統進程默認已設置為高優先級,一般無需修改
  2. 多核優化策略

    • 對于多線程應用,確保線程數不超過物理核心數
    • 使用 CPU 親和性減少緩存失效
  3. 監控與基準測試

    • 使用 sar -u 1 3 監控 CPU 使用率變化
    • 調優前后進行基準測試對比效果

(二)內存性能調優

知識點詳解

1. 內存監控工具

  • free -h:人性化顯示內存總量、使用量和空閑量
    • 重點關注 available 列,反映實際可用內存
  • vmstat 1:實時監控內存活動
    • 關鍵指標:si(每秒從swap讀入內存量)、so(每秒寫入swap量)
  • /proc/meminfo:詳細內存統計信息文件

2. 內存管理機制

  • 虛擬內存系統組成:
    • 物理內存
    • 交換分區(swap)
    • 頁面緩存(page cache)
    • 緩沖區(buffer cache)
  • 交換空間管理:
    • 查看:swapon --show
    • 創建:fallocate -l 2G /swapfile && mkswap /swapfile && swapon /swapfile
  • OOM Killer:內存耗盡時選擇性終止進程的機制
    • 調整策略:/proc/<pid>/oom_score_adj

3. 優化技術

  • 大頁(HugePages):減少 TLB 失效,提升性能
    • 配置:/proc/sys/vm/nr_hugepages
  • 透明大頁(THP):自動管理的大頁
    • 控制:/sys/kernel/mm/transparent_hugepage/enabled
  • 內存壓縮(zswap):在內存中壓縮頁面,減少交換I/O

注意事項與最佳實踐

  1. 交換空間配置原則

    • 物理內存 < 4GB:交換空間 = 2×物理內存
    • 物理內存 4-8GB:交換空間 = 物理內存
    • 物理內存 > 8GB:交換空間 = 0.5×物理內存(最小4GB)
  2. 交換使用監控

    • 關注 vmstat 中的 si/so 值,持續不為0表示內存不足
    • 設置 vm.swappiness(默認60)控制交換傾向:
      • 數據庫服務器建議設為10-20
      • 桌面環境可保持默認
  3. 內存泄漏檢測

    • 使用 smem -s swap 查看進程內存使用
    • valgrind 工具檢測應用程序內存泄漏

(三)磁盤性能調優

知識點詳解

1. 磁盤監控與分析

  • df -hT:顯示文件系統類型和使用情況
    • 示例:df -hT | grep -v tmpfs
  • du -sh *:統計目錄空間使用
    • 進階用法:du -h --max-depth=1 /var
  • iotop:類似top的磁盤I/O監控工具
  • iostat -x 1:詳細磁盤I/O統計

2. I/O調度算法

  • 可用算法:
    • CFQ:公平隊列,適合通用負載
    • Deadline:保證請求截止時間,適合數據庫
    • NOOP:簡單FIFO,適合SSD和虛擬化環境
    • Kyber:新型算法,適合多隊列設備
  • 查看與修改:
    • 查看:cat /sys/block/sdX/queue/scheduler
    • 修改:echo deadline > /sys/block/sda/queue/scheduler

3. 文件系統優化

  • 掛載選項優化:
    • noatime/relatime:減少元數據更新
    • data=writeback:ext4更快的寫入性能(有風險)
    • discard:SSD TRIM支持
  • 日志模式選擇:
    • journal:完全日志(最安全)
    • writeback:僅元數據日志(性能更好)

注意事項與最佳實踐

  1. 不同存儲介質優化

    • 機械硬盤
      • 定期碎片整理:e4defrag
      • 使用CFQ或Deadline調度
    • SSD
      • 啟用TRIM:fstrim -v /
      • 使用NOOP或Kyber調度
      • 避免頻繁寫入,延長壽命
  2. RAID配置優化

    • RAID級別選擇:
      • RAID0:高性能,無冗余
      • RAID1:高可用,容量減半
      • RAID5/6:平衡性能與冗余
    • 條帶大小調整:根據工作負載選擇合適大小
  3. LVM優化

    • 合理設置PE(Physical Extent)大小
    • 使用--stripes選項提高并行I/O
    • 定期檢查vgdisplaylvdisplay
  4. 數據庫專用優化

    • 使用裸設備或XFS文件系統
    • 設置合適的I/O調度器和預讀參數
    • 考慮使用O_DIRECT繞過頁面緩存

(四)綜合調優策略

系統級優化

  1. 內核參數調整

    • /etc/sysctl.conf 關鍵參數:
      vm.swappiness = 10
      vm.dirty_ratio = 20
      vm.dirty_background_ratio = 10
      net.ipv4.tcp_fin_timeout = 30
      

  2. 服務管理優化

    • 使用 systemd-analyze blame 分析啟動耗時
    • 禁用不必要的系統服務

應用級優化

  1. Web服務器調優

    • Nginx:調整 worker_processes 和 worker_connections
    • Apache:優化 MaxClients 和 KeepAlive
  2. 數據庫調優

    • MySQL:調整 innodb_buffer_pool_size
    • PostgreSQL:優化 shared_buffers 和 work_mem

監控與維護

  1. 長期監控

    • 部署 Prometheus + Grafana
    • 設置合理的告警閾值
  2. 定期維護

    • 日志輪轉:logrotate
    • 系統更新:安全補丁和性能改進

通過全面系統的調優,可以顯著提升 Linux 系統的整體性能,滿足不同業務場景的需求。調優時應遵循"測量-調整-驗證"的循環,確保每次修改都帶來實際的性能提升。

二、高級文件系統管理

Linux 的文件系統功能強大,掌握高級文件系統管理技巧能更好地管理和維護文件系統。這些技巧不僅適用于服務器管理員,也對開發人員和高級用戶有很大幫助。

(一)LVM(邏輯卷管理)

知識點

LVM 的基本概念: LVM(Logical Volume Manager)是一種靈活的磁盤管理方案,由三個主要組件構成:

  1. 物理卷(PV):實際的物理磁盤或分區,通過pvcreate命令初始化
  2. 卷組(VG):由多個物理卷組成的一個邏輯存儲池,使用vgcreate創建
  3. 邏輯卷(LV):從卷組中劃分出來的邏輯存儲區域,通過lvcreate創建,可以像普通分區一樣進行格式化和掛載

LVM 的常用命令

  • 物理卷操作:pvcreate, pvdisplay, pvmove, pvremove
  • 卷組操作:vgcreate, vgextend, vgreduce, vgdisplay
  • 邏輯卷操作:lvcreate, lvextend, lvreduce, lvdisplay
  • 文件系統調整:resize2fs(ext文件系統)或xfs_growfs(xfs文件系統)

示例操作流程

  1. 初始化物理卷:pvcreate /dev/sdb1 /dev/sdc1
  2. 創建卷組:vgcreate myvg /dev/sdb1 /dev/sdc1
  3. 創建邏輯卷:lvcreate -L 20G -n mylv myvg
  4. 格式化并掛載:mkfs.ext4 /dev/myvg/mylv,然后mount /dev/myvg/mylv /mnt

注意事項

  1. 規劃建議

    • 預留10-20%的卷組空間用于未來擴展
    • 為不同用途的數據創建獨立的邏輯卷
    • 考慮使用條帶化(striping)來提高I/O性能
  2. 擴展邏輯卷的正確步驟

    • 先擴展邏輯卷:lvextend -L +5G /dev/myvg/mylv
    • 再調整文件系統:resize2fs /dev/myvg/mylv
    • 對于XFS文件系統:xfs_growfs /mnt
  3. 縮減注意事項

    • ext文件系統可縮減,但需要先卸載文件系統
    • XFS文件系統不支持縮減
    • 縮減前務必備份重要數據

(二)文件系統快照

知識點

快照的作用: 文件系統快照可以在不中斷服務的情況下,創建一個文件系統在某個時間點的狀態副本,常用于:

  • 數據備份(不影響生產系統運行)
  • 軟件測試(基于快照環境)
  • 系統恢復(快速回滾到之前狀態)

LVM 快照實現

  1. 創建快照:lvcreate -s -n snap_mylv -L 5G /dev/myvg/mylv
    • -s表示創建快照
    • -L指定快照空間大小
  2. 掛載快照:mount /dev/myvg/snap_mylv /mnt/snapshot
  3. 使用后刪除:lvremove /dev/myvg/snap_mylv

快照原理: 快照采用寫時復制(Copy-on-Write)技術:

  • 初始時快照不占用實際空間
  • 當源卷數據塊被修改時,原始數據會先復制到快照空間
  • 快照始終反映創建時的數據狀態

注意事項

  1. 空間規劃

    • 快照空間大小取決于源卷的預期變化量
    • 對于頻繁更新的系統,建議分配源卷15-20%的空間
    • 監控快照空間使用:lvs命令查看"Snap%"列
  2. 性能影響

    • 快照會帶來一定的I/O開銷
    • 生產環境避免長期保留快照
    • 關鍵業務時段慎用快照
  3. 最佳實踐

    • 為每個快照明確命名和用途
    • 建立快照生命周期管理策略
    • 結合備份策略使用(如將快照備份到遠程存儲)

(三)文件權限與 ACL(訪問控制列表)

知識點

傳統文件權限: Linux使用9位權限標志(rwxrwxrwx):

  • 前3位:所有者權限
  • 中3位:所屬組權限
  • 后3位:其他用戶權限
  • 數值表示:r=4, w=2, x=1

常用命令

  1. 修改權限:
    • 符號模式:chmod u=rwx,g=rx,o= file
    • 數值模式:chmod 750 file
  2. 修改所有者:chown user:group file
  3. 特殊權限:
    • SUID(4):chmod u+s file
    • SGID(2):chmod g+s dir
    • Sticky(1):chmod o+t /tmp

ACL(訪問控制列表): 提供更精細的權限控制,允許為:

  • 特定用戶設置權限
  • 特定組設置權限
  • 默認權限(對新創建文件生效)

ACL操作命令

  1. 設置ACL:
    • setfacl -m u:user:rwx file(為用戶設置)
    • setfacl -m g:group:rx file(為組設置)
    • setfacl -d -m u:user:rw dir(默認ACL)
  2. 查看ACL:getfacl file
  3. 刪除ACL條目:setfacl -x u:user file

注意事項

  1. 權限管理原則

    • 遵循最小權限原則
    • 定期審計權限設置
    • 使用組而非個人用戶進行權限分配
  2. ACL實施要點

    • 確保文件系統掛載時啟用ACL選項(mount -o acl)
    • ext*文件系統需要在格式化時啟用ACL功能
    • ACL不影響傳統權限顯示(ls -l顯示+號表示有ACL)
  3. 特殊場景處理

    • 共享目錄:SGID+ACL組合
    • 臨時目錄:Sticky位防止用戶刪除他人文件
    • 可執行文件:SUID謹慎使用(安全風險)
  4. 權限問題排查

    • 檢查有效權限:考慮用戶主組和附加組
    • 查看SELinux上下文:ls -Z
    • 檢查父目錄權限(影響文件訪問)

三、網絡配置與安全

一、高級網絡配置

知識點詳解

網絡接口配置
  1. 基本配置方法

    • 使用 ifconfig 命令進行臨時配置(重啟后失效)
    • 通過 /etc/sysconfig/network-scripts/ifcfg-eth0(CentOS/RHEL)或 /etc/network/interfaces(Debian/Ubuntu)進行永久配置
    • 可配置參數包括:
      • IPADDR:IP地址
      • NETMASK:子網掩碼
      • GATEWAY:默認網關
      • DNS1/DNS2:DNS服務器
      • BOOTPROTO:獲取IP方式(static/dhcp/none)
  2. nmcli 工具(NetworkManager命令行工具):

    nmcli con add con-name "my-connection" ifname eth0 type ethernet ip4 192.168.1.100/24 gw4 192.168.1.1
    

路由配置
  1. 基本命令

    • route -n:查看路由表
    • ip route show:更詳細的顯示方式
    • route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.1:添加路由
    • ip route add 10.0.0.0/8 via 192.168.1.1:等效命令
  2. 永久路由配置

    • CentOS/RHEL:在 /etc/sysconfig/network-scripts/route-eth0 中添加
    • Ubuntu/Debian:在 /etc/network/interfaces 中添加 up route add -net...
網絡Bonding技術
  1. 工作模式

    • mode=0(balance-rr):輪詢模式,提高帶寬
    • mode=1(active-backup):主備模式,提高可靠性
    • mode=4(802.3ad):LACP聚合,需要交換機支持
  2. 配置示例

    # 創建bond接口
    nmcli con add type bond con-name bond0 ifname bond0 mode active-backup
    # 添加從屬接口
    nmcli con add type bond-slave ifname eth0 master bond0
    nmcli con add type bond-slave ifname eth1 master bond0
    

注意事項與最佳實踐

  1. 配置生效

    • CentOS 7+:systemctl restart NetworkManager
    • Ubuntu 18.04+:netplan apply(使用netplan的情況)
    • 傳統方法:service network restart/etc/init.d/networking restart
  2. 路由配置驗證

    • 使用 traceroutemtr 命令驗證路由路徑
    • 通過 ping 測試目標網絡可達性
  3. Bonding模式選擇建議

    • 服務器多網卡:推薦mode=4(需交換機支持LACP)
    • 關鍵業務網絡:推薦mode=1(主備模式)
    • 測試環境:可使用mode=0(輪詢模式)

二、防火墻與安全策略

防火墻技術詳解

iptables
  1. 表與鏈結構

    • filter表(默認):INPUT、OUTPUT、FORWARD鏈
    • nat表:PREROUTING、POSTROUTING鏈
    • mangle表:用于特殊數據包修改
  2. 規則示例

    # 允許SSH訪問
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    # 允許已建立的連接
    iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    # 默認拒絕所有其他入站流量
    iptables -P INPUT DROP
    

  3. 規則保存

    • CentOS:service iptables save
    • Ubuntu:apt-get install iptables-persistent,然后 netfilter-persistent save
firewalld
  1. 核心概念

    • zone(區域):定義信任級別(如public、internal、dmz)
    • service(服務):預定義的端口/協議組合(如http、ssh)
    • rich rule(富規則):高級過濾規則
  2. 常用命令

    firewall-cmd --permanent --add-service=http
    firewall-cmd --permanent --add-port=8080/tcp
    firewall-cmd --reload
    firewall-cmd --list-all
    

  3. 高級功能

    • 端口轉發:firewall-cmd --add-forward-port
    • 源地址限制:firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept'
SELinux深入
  1. 工作模式

    • Enforcing:強制執行安全策略
    • Permissive:記錄違規但不阻止
    • Disabled:完全禁用
  2. 常用命令

    getenforce  # 查看當前狀態
    setenforce 1|0  # 臨時切換模式
    semanage port -l  # 查看端口標簽
    restorecon -Rv /path  # 恢復文件上下文
    

  3. 策略管理

    • audit2allow:從審計日志生成自定義策略模塊
    • sealert:分析SELinux拒絕事件

安全最佳實踐

  1. 防火墻配置原則

    • 默認拒絕所有入站流量(firewall-cmd --set-default-zone=drop
    • 按需開放端口(推薦使用服務定義而非直接開放端口)
    • 定期審計規則(firewall-cmd --list-all-zones
  2. SELinux管理建議

    • 生產環境不應禁用SELinux
    • 遇到權限問題時,首先檢查/var/log/audit/audit.log
    • 使用chconsemanage調整文件上下文而非完全禁用保護
  3. 綜合安全措施

    • 結合fail2ban防止暴力破解
    • 使用TCP Wrappers(/etc/hosts.allow, /etc/hosts.deny)進行額外訪問控制
    • 定期更新安全補丁(yum update/apt-get upgrade
  4. 監控與審計

    • 使用ss -tulnp監控開放端口
    • 通過journalctl -u firewalld查看防火墻日志
    • 定期檢查/var/log/secure獲取安全相關事件

四、Shell 腳本編程進階

Shell 腳本編程是自動化管理 Linux 系統的重要手段,掌握進階的 Shell 腳本編程技巧能顯著提高工作效率。下面介紹幾個關鍵的高級技巧和注意事項。

一、函數與參數傳遞

知識點詳解

函數定義方式

  1. 使用 function 關鍵字:function myfunc() { ... }
  2. 簡化形式:myfunc() { ... }

參數傳遞機制

  • 位置參數:$1(第一個參數)、$2(第二個參數)等
  • 特殊變量:
    • $#:參數個數
    • $*$@:所有參數
    • $0:腳本名稱
    • $?:函數返回值

示例

function greet() {echo "Hello, $1! There are $# parameters in total."
}
greet "Alice" "Bob" "Charlie"

最佳實踐

  1. 命名規范

    • 使用小寫字母和下劃線組合
    • 選擇有描述性的名稱,如 calculate_disk_usage()
    • 避免與系統命令重名
  2. 參數檢查

function safe_divide() {if [ $# -ne 2 ]; thenecho "Usage: safe_divide dividend divisor"return 1fi# 函數邏輯...
}

  1. 返回值處理
    • 使用 return 返回狀態碼(0-255)
    • 通過命令替換 $(function) 獲取輸出

二、流程控制進階

高級條件判斷

case 語句示例

read -p "Enter your choice (start|stop|restart): " choice
case "$choice" instart)systemctl start nginx;;stop)systemctl stop nginx;;restart)systemctl restart nginx;;*)echo "Invalid choice"exit 1;;
esac

測試表達式增強

  • 字符串比較:=, !=, -z(空), -n(非空)
  • 數值比較:-eq, -ne, -gt, -lt, -ge, -le
  • 文件測試:-e(存在), -f(常規文件), -d(目錄)

循環結構優化

for 循環變體

# 遍歷數字范圍
for i in {1..10}; doecho "Count: $i"
done# C風格for循環
for ((i=0; i<10; i++)); doecho "Index: $i"
done

while 讀取文件

while IFS= read -r line; doecho "Processing: $line"
done < input.txt

循環控制技巧

  • break N:跳出N層循環
  • continue N:跳過N層循環的當前迭代
  • 使用 : 創建無限循環:while :; do ... done

三、文本處理工具進階

grep 高級用法

常用選項組合

# 遞歸搜索目錄,忽略大小寫,顯示行號
grep -rin "error" /var/log/# 只顯示匹配的文件名
grep -rl "pattern" /path/# 使用擴展正則表達式,匹配多個模式
grep -E "error|warning|critical" logfile

上下文查看

  • -A NUM:顯示匹配行后的NUM行
  • -B NUM:顯示匹配行前的NUM行
  • -C NUM:顯示匹配行前后各NUM行

sed 實戰技巧

基本替換

# 替換每行第一個匹配
sed 's/old/new/' file# 全局替換
sed 's/old/new/g' file# 原地修改(BSD/macOS需要-i '',GNU需要-i)
sed -i.bak 's/old/new/g' file

高級編輯

# 刪除空行
sed '/^$/d' file# 在匹配行后插入
sed '/pattern/a new line' file# 只處理第5-10行
sed '5,10s/old/new/g' file

awk 編程能力

基本結構

awk 'BEGIN {初始化} 模式 {動作} END {結束處理}' file

字段處理

# 打印特定列
awk '{print $1, $3}' data.txt# 使用自定義分隔符
awk -F: '{print $1, $6}' /etc/passwd# 條件過濾
awk '$3 > 100 {print $1, $2}' data.txt

統計計算

# 計算文件行數
awk 'END {print NR}' file# 列求和
awk '{sum+=$1} END {print sum}' data.txt# 分組統計
awk '{count[$1]++} END {for (i in count) print i, count[i]}' logfile

注意事項與調試技巧

  1. 調試方法

    • 使用 set -x 開啟調試模式
    • 在關鍵位置添加 echo 打印變量值
    • 使用 bash -n script.sh 檢查語法
  2. 性能優化

    • 減少子shell創建 $(command)
    • 使用 [[ ]] 代替 [ ] 進行測試
    • 批量處理文本時,盡量減少管道使用
  3. 可移植性

    • 在腳本開頭指定解釋器:#!/bin/bash
    • 避免使用bash特有的特性(如需要兼容其他shell)
    • 使用 command -v 檢查命令是否存在
  4. 安全考慮

    • 始終引用變量:"$var"
    • 使用 read -r 防止反斜杠轉義
    • 驗證用戶輸入,避免命令注入

五、服務管理與監控

對 Linux 系統中的服務進行有效的管理和監控,能確保系統的穩定運行。以下是詳細的管理和監控方法:

(一)系統服務管理

知識點詳解

systemd 服務管理

systemd 是目前大多數現代 Linux 發行版(如 RHEL 7+/CentOS 7+、Ubuntu 16.04+、Debian 8+等)采用的系統和服務管理器。它提供了強大的服務管理功能:

  • 基本命令

    • systemctl start 服務名:啟動指定服務(如 systemctl start nginx
    • systemctl stop 服務名:停止指定服務
    • systemctl restart 服務名:重啟服務
    • systemctl reload 服務名:重新加載配置而不中斷服務
    • systemctl enable 服務名:設置服務開機自啟
    • systemctl disable 服務名:取消服務開機自啟
    • systemctl status 服務名:查看服務狀態
  • 高級功能

    • systemctl mask 服務名:完全禁用服務(防止手動或自動啟動)
    • systemctl unmask 服務名:解除服務禁用
    • systemctl list-dependencies 服務名:查看服務依賴關系
服務配置文件

服務的配置文件通常位于以下目錄:

  • /etc/systemd/system/:系統管理員自定義的服務配置
  • /usr/lib/systemd/system/:軟件包安裝的服務配置

配置文件示例(以 Nginx 為例):

[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s quit[Install]
WantedBy=multi-user.target

注意事項

  1. 服務名稱準確性

    • 使用 systemctl list-unit-files --type=service 查看所有服務
    • 使用 systemctl list-units --type=service --all 查看所有加載的服務單元
  2. 配置文件修改

    • 修改配置文件后必須執行 systemctl daemon-reload 重新加載配置
    • 建議先測試配置:systemd-analyze verify 服務名.service
  3. 其他注意事項

    • 謹慎使用 systemctl restart,可能會中斷正在處理的請求
    • 對于關鍵服務,考慮使用 systemctl try-restart 只在服務運行時才重啟
    • 檢查服務日志:journalctl -u 服務名 -f(實時查看)

(二)系統監控工具

知識點詳解

實時監控工具
  1. top/htop

    • top:經典的系統監控工具,顯示進程、CPU、內存等信息
      • 常用快捷鍵:M(按內存排序)、P(按CPU排序)、1(顯示所有CPU核心)
    • htop:增強版,支持彩色顯示、鼠標操作、樹狀視圖等
      • 安裝:yum install htop(RHEL/CentOS)或 apt install htop(Debian/Ubuntu)
      • 功能:可以直觀地查看進程樹、直接殺死進程、調整優先級等
  2. vmstat

    • 報告系統整體性能指標
    • 示例:vmstat 1 5(每1秒采樣,共5次)
    • 輸出字段說明:
      • r:運行隊列中的進程數
      • b:等待I/O的進程數
      • swpd:使用的虛擬內存量
      • free:空閑內存量
      • si/so:每秒從磁盤交換到內存/從內存交換到磁盤的數量
  3. iostat

    • 監控磁盤I/O性能
    • 示例:iostat -dx 1(顯示擴展統計,每1秒刷新)
    • 重要指標:
      • %util:設備利用率(接近100%表示I/O瓶頸)
      • await:平均I/O響應時間
      • svctm:平均服務時間
  4. netstat/ss

    • netstat:傳統網絡統計工具
      • netstat -tulnp:查看監聽端口和對應進程
      • netstat -s:顯示網絡統計摘要
    • ss:更高效的替代工具
      • ss -tulnp:功能同netstat但性能更好
      • ss -s:顯示更詳細的套接字統計
高級監控系統
  1. Nagios

    • 成熟的企業級監控解決方案
    • 特點:
      • 主動檢查(定期輪詢)
      • 強大的告警功能(郵件、短信等)
      • 豐富的插件生態系統
    • 典型監控項:服務狀態、磁盤空間、CPU負載、網絡連通性等
  2. Zabbix

    • 現代化的監控系統
    • 優勢:
      • 支持主動和被動監控
      • 自動發現功能
      • 強大的可視化(圖形、地圖、儀表盤)
      • 靈活的告警配置
    • 監控范圍:服務器、網絡設備、應用程序、數據庫等
  3. Prometheus+Grafana

    • Prometheus:專注于時間序列數據的監控系統
    • Grafana:強大的可視化工具
    • 組合優勢:
      • 高效的指標收集和存儲
      • 美觀靈活的儀表盤
      • 適合云原生環境監控

注意事項

  1. 資源占用

    • 實時工具(如top/htop)會消耗系統資源,在高負載系統上謹慎使用
    • 考慮使用niceionice降低監控工具的優先級
  2. 監控配置

    • 對于Nagios/Zabbix:
      • 合理設置檢查間隔(太頻繁會增加負載,太稀疏可能錯過問題)
      • 配置有意義的告警閾值(基于基線而非固定值)
      • 設置適當的告警升級策略
  3. 數據保留

    • 規劃監控數據的保留周期
    • 對于長期趨勢分析,考慮數據歸檔策略
  4. 安全性

    • 確保監控系統本身的安全(訪問控制、加密傳輸等)
    • 敏感數據(如密碼)在配置文件中要妥善處理
  5. 性能基準

    • 建立系統性能基準,便于識別異常
    • 定期審查監控指標和告警規則的有效性

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/96694.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/96694.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/96694.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

14.蘋果ios逆向-app的調試方式

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 內容參考于&#xff1a;圖靈Python學院 工具下載&#xff1a; 鏈接&#xff1a;https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取碼&#xff1…

深入理解 React useEffect

一、useEffect基礎概念 1、什么是副作用&#xff08;Side Effects&#xff09;&#xff1f; 在React中&#xff0c;副作用是指那些與組件渲染結果無關的操作&#xff0c;例如&#xff1a; 數據獲取&#xff08;API調用&#xff09;手動修改DOM設置訂閱或定時器記錄日志 2、useE…

Yapi中通過MongoDB修改管理員密碼與新增管理員

如何在Docker部署的Yapi中通過MongoDB修改管理員密碼與新增管理員便捷管理Yapi權限&#xff1a;無需前端重置&#xff0c;直接通過數據庫操作修改密碼及添加管理員一、進入MongoDB容器并連接數據庫 首先&#xff0c;通過以下命令進入運行中的MongoDB容器&#xff1a; docker ex…

【EasyR1】GRPO訓練

官方github&#xff1a;https://github.com/hiyouga/EasyR1 參考&#xff1a;https://opendeep.wiki/hiyouga/EasyR1/quickstart 代碼和環境配置 github&#xff1a;https://github.com/hiyouga/EasyR1 新建一個虛擬環境&#xff1a; python -m venv easyr1 source easyr1/b…

2025年KBS SCI1區TOP,新穎獎勵與ε-貪婪衰減Q-learning算法+局部移動機器人路徑規劃,深度解析+性能實測

目錄1.摘要2.新穎獎勵與ε-貪婪衰減Q-learning算法3.結果展示4.參考文獻5.代碼獲取6.算法輔導應用定制讀者交流1.摘要 路徑規劃是移動機器人的核心任務&#xff0c;需要在高效導航的同時規避障礙。本文提出了一種改進Q-learning算法——定制化獎勵與ε-貪婪衰減Q-learning&…

運行npm run命令報錯“error:0308010C:digital envelope routines::unsupported”

下載的前后端分離架構的開源項目&#xff0c;運行“npm run serve”命令啟動前端服務時報錯“error:0308010C:digital envelope routines::unsupported”&#xff0c;這個錯誤通常是由于Node.js版本與項目依賴不兼容導致的&#xff0c;特別是在Node.js v17版本中&#xff0c;百…

AI計算提效關鍵。自適應彈性加速,基于存算架構做浮點運算

一、自適應彈性加速是提升芯片能效比的有力手段自適應彈性加速技術是現代芯片設計中提升能效比的關鍵路徑之一。它摒棄了傳統芯片在設計時采用的靜態、固化的資源分配與功能設定模式&#xff0c;通過引入動態調整機制&#xff0c;使得芯片能夠根據實時的應用需求和負載變化&…

Spring Boot測試陷阱:失敗測試為何“傳染”其他用例?

一個測試失敗&#xff0c;為何“傳染”其他測試&#xff1f;——Spring Boot 單元測試獨立性與泛型陷阱實戰解析 &#x1f6a9; 問題背景 在日常開發中&#xff0c;我們常會遇到這樣的場景&#xff1a; 正在開發新功能 A&#xff0c;寫了一個 testFeatureA() 測試方法&#xff…

Web開發中的CGI:通用網關接口詳解

一、CGI的設計意圖&#xff1a;解決Web的"靜態"困境 在CGI出現之前&#xff0c;Web服務器只能做一件事&#xff1a;返回預先寫好的靜態文件&#xff08;HTML、圖片等&#xff09;。每個用戶看到的內容都是一模一樣的。 設計意圖很簡單但卻革命性&#xff1a; 讓Web服…

在 SSMS 中查找和打開已保存的查詢文件

在 SSMS 中查找和打開已保存的查詢文件 在 SQL Server Management Studio (SSMS) 中&#xff0c;您可以輕松地查找并打開已保存的查詢文件&#xff08;通常以 .sql 擴展名保存&#xff09;。SSMS 提供了直觀的界面支持直接打開這些文件&#xff0c;無需額外工具。以下是詳細步驟…

Protues使用說明及Protues與Keil聯合仿真實現點亮小燈和流水燈

目錄 1Protues介紹及新建工程 1.1進入軟件 1.2文件創建 1.3默認選項 1.5設計面板 1.6添加元器件 1.7終端模式 1.8激勵源模式 1.9探針模式 1.10儀表 1.11二維直線 1.12字符 2 Protues電路原理圖仿真 2.1 220V交流電轉5V直流電穩壓電路仿真原理圖 2.1.1 仿真原理圖…

Linux PCI 子系統:工作原理與實現機制深度分析

Linux PCI 子系統&#xff1a;工作原理與實現機制深度分析 1. Linux PCI 子系統基礎概念 1.1 PCI/PCIe 基礎概念回顧 總線拓撲&#xff1a; PCI/PCIe 系統是一個樹形結構。CPU 連接到 Root Complex (RC)&#xff0c;RC 連接至 PCIe 交換機 (Switch) 和 PCIe 端點設備 (Endpoint…

RabbitMQ 全面指南:架構解析與案例實戰

目錄一、RabbitMQ 簡介1.1 什么是 RabbitMQ1.2 RabbitMQ 的核心組件1.3 RabbitMQ 的應用場景二、環境搭建2.1 安裝 RabbitMQ2.2 安裝 Erlang2.3 配置 RabbitMQ三、RabbitMQ 核心概念與工作原理3.1 消息模型3.2 交換機類型3.3 隊列特性3.4 消息確認機制四、Spring Boot 集成 Rab…

6.2 el-menu

一、 <el-menu>: 菜單組件&#xff0c;定義了側邊欄內部的具體導航項、層級結構和交互行為。<el-container><!-- 側邊欄容器 --><el-aside width"200px"><!-- 菜單內容 --><el-menu default-active"1" class"el-men…

Windows 筆記本實現僅關屏仍工作:一種更便捷的 “偽熄屏” 方案

在使用 Windows 筆記本作為臨時服務器或需要后臺持續運行程序時&#xff0c;我們常面臨一個需求&#xff1a;關閉屏幕以節省電量或減少光污染&#xff0c;同時保持系統正常工作。然而&#xff0c;網絡上流傳的諸多方法往往存在局限&#xff0c;要么無法兼顧 “熄屏” 與 “工作…

Linux應急響應一般思路(二)

進程排查進程(Process)是計算機中的程序關于某數據集合上的一次運行活動&#xff0c;是系統進行資源分配和調度的基本單位&#xff0c;是操作系統結構的基礎無論是在Windows系統還是Linux系統中&#xff0c;主機在感染惡意程序后&#xff0c;惡意程序都會啟動相應的進程&#x…

基于 SkyWalking + Elasticsearch + Grafana 的可落地調用鏈監控方案

這個方案成熟穩定、社區活躍、部署相對簡單,非常適合中小型團隊作為第一代調用鏈系統落地。 一、核心組件選型與角色 組件 版本建議 角色 優點 Apache SkyWalking v9.x+ 核心平臺 (采集、分析、存儲、UI) 國產優秀,Java Agent無侵入接入,功能全面,性能損耗低 Elasticsearc…

APP逆向——某站device-id參數

免責聲明本博客所涉及的 爬蟲技術、逆向分析方法 僅用于 學習、研究和技術交流。文中所有示例代碼、工具和方法&#xff0c;均不得用于以下行為&#xff1a;未經授權的數據采集侵犯他人知識產權干擾或破壞正常業務系統任何違反國家法律法規的行為因讀者將本教程內容用于 非法用…

C/C++數據結構之循環鏈表

概述循環鏈表本質上也是一個單向或雙向鏈表&#xff0c;但其最后一個節點的指針并不指向NULL&#xff0c;而是指向鏈表的第一個節點&#xff0c;從而形成一個閉合的環。這種結構使得在遍歷鏈表時&#xff0c;可以從任意一個節點開始&#xff0c;并最終回到起始點。音樂播放軟件…

Mongodb的教程

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言 一、mongodb是什么&#xff1f; 二、mongodb的下載與安裝教程 三、mongodb的常見操作 總結 前言 在當今數據驅動的世界中&#xff0c;數據庫技術是構建高效…