chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux基礎(chǔ)命令的進(jìn)階用法

馬哥Linux運(yùn)維 ? 來(lái)源:馬哥Linux運(yùn)維 ? 2025-09-02 16:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Linux 運(yùn)維進(jìn)階:從基礎(chǔ)命令到系統(tǒng)優(yōu)化的深度剖析

開(kāi)篇:你是否遇到過(guò)這些崩潰時(shí)刻?

凌晨2點(diǎn),正在熟睡的你被電話(huà)驚醒:"線上服務(wù)響應(yīng)超時(shí),用戶(hù)大面積投訴!" 你匆忙打開(kāi)電腦,SSH 登錄服務(wù)器,面對(duì)滿(mǎn)屏的進(jìn)程和日志,腦子一片空白——從哪里開(kāi)始排查?用什么命令?怎么快速定位問(wèn)題?

如果你也有過(guò)類(lèi)似經(jīng)歷,或者正在為"Linux 命令太多記不住"、"系統(tǒng)優(yōu)化不知從何下手"而苦惱,那這篇文章就是為你準(zhǔn)備的。

讀完本文,你將收獲:

? 20個(gè)高頻運(yùn)維命令的進(jìn)階用法(不只是 ls、cd,而是 top -Hp、strace -c 這些實(shí)戰(zhàn)利器)

? 5大系統(tǒng)性能指標(biāo)的優(yōu)化方案CPU、內(nèi)存、磁盤(pán)I/O、網(wǎng)絡(luò)、進(jìn)程管理全覆蓋)

? 3個(gè)生產(chǎn)環(huán)境真實(shí)案例拆解(附完整排查過(guò)程和可復(fù)用腳本)

? 1套系統(tǒng)優(yōu)化檢查清單(可直接用于日常巡檢和故障預(yù)防)

一、基礎(chǔ)命令進(jìn)階:從"會(huì)用"到"用好"

1.1 CPU 排查三劍客:top、htop、pidstat

很多人用top只會(huì)看 CPU 使用率,但真正的高手會(huì)這樣用:

關(guān)鍵命令1:定位高 CPU 進(jìn)程的具體線程

# 先找到高 CPU 進(jìn)程的 PID(假設(shè)是 12345)
top -c

# 查看該進(jìn)程的所有線程 CPU 占用
top -Hp 12345

# 將線程 ID 轉(zhuǎn)換為 16 進(jìn)制(用于匹配 jstack 輸出)
printf"%x
"12356 # 假設(shè)高 CPU 線程 ID 是 12356

踩坑經(jīng)驗(yàn):我曾經(jīng)只看進(jìn)程級(jí) CPU,結(jié)果某個(gè) Java 應(yīng)用的 GC 線程瘋狂占用 CPU 卻沒(méi)發(fā)現(xiàn),導(dǎo)致排查了 3 小時(shí)。正確做法:always 使用-Hp參數(shù)查看線程級(jí)詳情。

關(guān)鍵命令2:實(shí)時(shí)監(jiān)控指定進(jìn)程的資源消耗

# 每 2 秒刷新一次 PID 12345 的詳細(xì)資源占用
pidstat -u -r -d -t -p 12345 2

# 參數(shù)說(shuō)明:
# -u: CPU 使用統(tǒng)計(jì)
# -r: 內(nèi)存使用統(tǒng)計(jì)
# -d: 磁盤(pán) I/O 統(tǒng)計(jì)
# -t: 顯示線程級(jí)別信息

1.2 內(nèi)存排查進(jìn)階:不只是 free -h

關(guān)鍵命令3:精準(zhǔn)定位內(nèi)存泄漏進(jìn)程

# 查看進(jìn)程內(nèi)存映射,找出異常增長(zhǎng)的內(nèi)存段
pmap -x 12345 |tail-5

# 持續(xù)監(jiān)控內(nèi)存增長(zhǎng)趨勢(shì)(每 5 秒記錄一次)
whiletrue;do
 date>> mem_monitor.log
  ps aux | grep 12345 | grep -v grep >> mem_monitor.log
 sleep5
done

血淚教訓(xùn):曾經(jīng)一個(gè) Node.js 應(yīng)用內(nèi)存緩慢泄漏,用free -h只能看到總內(nèi)存在減少,卻不知道是哪個(gè)進(jìn)程。后來(lái)用smem -rs swap -p按 swap 使用量排序,立刻定位到問(wèn)題進(jìn)程。

1.3 磁盤(pán) I/O 深度分析:iotop 的高級(jí)用法

關(guān)鍵命令4:找出隱藏的 I/O 殺手

# 實(shí)時(shí)顯示每個(gè)進(jìn)程的磁盤(pán)讀寫(xiě)速度
iotop -oP -d 2

# 參數(shù)說(shuō)明:
# -o: 只顯示有 I/O 活動(dòng)的進(jìn)程
# -P: 只顯示進(jìn)程,不顯示線程
# -d 2: 每 2 秒刷新

# 查看某個(gè)進(jìn)程的 I/O 詳細(xì)信息
cat/proc/12345/io

實(shí)戰(zhàn)技巧:MySQL 數(shù)據(jù)庫(kù)突然變慢,CPU 和內(nèi)存都正常,最后發(fā)現(xiàn)是日志文件寫(xiě)入導(dǎo)致磁盤(pán) I/O 飽和。解決方案:將innodb_flush_log_at_trx_commit從 1 改為 2,寫(xiě)入性能提升 5 倍。

二、系統(tǒng)優(yōu)化實(shí)戰(zhàn):從原理到落地

2.1 CPU 優(yōu)化:不只是調(diào)整 nice 值

優(yōu)化方案1:CPU 親和性綁定

# 將 nginx worker 進(jìn)程綁定到指定 CPU 核心
# 在 nginx.conf 中添加:
worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;

# 驗(yàn)證綁定效果
taskset -cp$(pgrep nginx)

為什么要這樣做:避免進(jìn)程在 CPU 核心間頻繁切換,減少 L1/L2 緩存失效,實(shí)測(cè)可提升 15% 性能。

優(yōu)化方案2:中斷負(fù)載均衡

# 查看當(dāng)前中斷分布
cat/proc/interrupts

# 將網(wǎng)卡中斷綁定到特定 CPU
echo2 > /proc/irq/24/smp_affinity # 24 是網(wǎng)卡中斷號(hào)

2.2 內(nèi)存優(yōu)化:科學(xué)配置才是王道

優(yōu)化方案3:合理設(shè)置 swappiness

# 查看當(dāng)前值
cat/proc/sys/vm/swappiness

# 臨時(shí)修改(重啟失效)
echo10 > /proc/sys/vm/swappiness

# 永久修改
echo"vm.swappiness = 10">> /etc/sysctl.conf
sysctl -p

參數(shù)選擇經(jīng)驗(yàn)

?數(shù)據(jù)庫(kù)服務(wù)器:設(shè)為 1-10(優(yōu)先使用物理內(nèi)存)

?應(yīng)用服務(wù)器:設(shè)為 30-60(平衡內(nèi)存和 swap)

?個(gè)人桌面:保持默認(rèn) 60

踩坑提醒:不要設(shè)為 0!曾經(jīng)為了"優(yōu)化性能"設(shè)為 0,結(jié)果內(nèi)存不足時(shí)直接 OOM Kill 掉了核心進(jìn)程。

2.3 網(wǎng)絡(luò)優(yōu)化:提升并發(fā)連接能力

優(yōu)化方案4:TCP 參數(shù)調(diào)優(yōu)

# 優(yōu)化 TCP 連接隊(duì)列
echo'net.core.somaxconn = 65535'>> /etc/sysctl.conf
echo'net.ipv4.tcp_max_syn_backlog = 8192'>> /etc/sysctl.conf

# 優(yōu)化 TIME_WAIT 狀態(tài)處理
echo'net.ipv4.tcp_tw_reuse = 1'>> /etc/sysctl.conf
echo'net.ipv4.tcp_tw_recycle = 0'>> /etc/sysctl.conf # 注意:不要開(kāi)啟!

# 立即生效
sysctl -p

注意事項(xiàng):tcp_tw_recycle在 NAT 環(huán)境下會(huì)導(dǎo)致連接異常,生產(chǎn)環(huán)境絕對(duì)不要開(kāi)啟

三、實(shí)戰(zhàn)案例:真實(shí)故障排查全過(guò)程

案例1:詭異的 CPU 100% 卻找不到進(jìn)程

故障現(xiàn)象:監(jiān)控顯示 CPU 使用率 100%,但 top 命令看不到高 CPU 進(jìn)程。

排查過(guò)程

# Step 1: 檢查是否有隱藏進(jìn)程
ps aux | awk'{print $3}'|sort-rn |head-10

# Step 2: 查看內(nèi)核線程
ps aux | grep"[.*]"

# Step 3: 檢查 I/O wait(發(fā)現(xiàn) wa 值異常高)
top
# 顯示:Cpu(s): 2.0%us, 3.0%sy, 0.0%ni, 0.0%id, 94.0%wa

# Step 4: 定位 I/O 瓶頸進(jìn)程
iotop -oP
# 發(fā)現(xiàn)是 rsync 備份進(jìn)程導(dǎo)致

根因:定時(shí)備份腳本使用 rsync 同步大量小文件,導(dǎo)致 I/O wait 飆高,CPU 看起來(lái) 100% 但實(shí)際是在等待 I/O。

解決方案

1. 將 rsync 改為增量備份:rsync -avz --delete

2. 限制 rsync 帶寬:--bwlimit=10240(限制為 10MB/s)

3. 調(diào)整備份時(shí)間到業(yè)務(wù)低峰期

案例2:內(nèi)存泄漏導(dǎo)致的連鎖反應(yīng)

完整排查腳本(可直接使用):

#!/bin/bash
# 文件名:check_memory_leak.sh
# 功能:自動(dòng)檢測(cè)可能存在內(nèi)存泄漏的進(jìn)程

echo"=== Memory Leak Detection Script ==="
echo"Monitoring memory usage for 60 seconds..."

# 創(chuàng)建臨時(shí)文件
tmpfile=$(mktemp)

# 第一次采樣
ps aux --sort=-%mem |head-20 | awk'{print $2,$4,$11}'>$tmpfile.1

# 等待 60 秒
sleep60

# 第二次采樣
ps aux --sort=-%mem |head-20 | awk'{print $2,$4,$11}'>$tmpfile.2

echo-e"
=== Processes with significant memory growth ==="
echo"PID  MEM_BEFORE MEM_AFTER GROWTH COMMAND"

# 對(duì)比兩次采樣結(jié)果
whilereadpid mem1 cmd1;do
  mem2=$(grep"^$pid"$tmpfile.2 | awk'{print $2}')
 if[ ! -z"$mem2"];then
    growth=$(echo"$mem2-$mem1"| bc)
   if(( $(echo "$growth>0.5" | bc -l) ));then
     printf"%-6s %-10s %-10s %-7s %s
"
         "$pid""$mem1%""$mem2%""+$growth%""$cmd1"
   fi
 fi
done

使用方法

chmod+x check_memory_leak.sh
./check_memory_leak.sh

四、系統(tǒng)優(yōu)化檢查清單(可直接用于日常巡檢)

每日檢查項(xiàng)

?CPU 負(fù)載:uptime查看 1/5/15 分鐘負(fù)載,不超過(guò) CPU 核數(shù)的 0.7 倍

?內(nèi)存使用:free -h確保可用內(nèi)存 > 20%

?磁盤(pán)空間:df -h確保所有分區(qū)使用率 < 80%

?關(guān)鍵進(jìn)程:systemctl status nginx/mysql/redis確保服務(wù)正常

每周優(yōu)化項(xiàng)

?清理日志:find /var/log -name "*.log" -mtime +30 -exec rm {} ;

?檢查僵尸進(jìn)程:ps aux | grep defunct

?分析慢查詢(xún):檢查 MySQL slow query log

?更新系統(tǒng):yum update --security或apt-get upgrade

每月深度優(yōu)化

?磁盤(pán)碎片整理:e4defrag /dev/sda1(ext4 文件系統(tǒng))

?TCP 連接分析:ss -s查看連接狀態(tài)分布

?內(nèi)核參數(shù)復(fù)查:對(duì)照最佳實(shí)踐檢查/etc/sysctl.conf

結(jié)語(yǔ):從被動(dòng)救火到主動(dòng)防御

掌握了這套"命令進(jìn)階 + 優(yōu)化方案 + 排查腳本"的組合拳,你就能從被動(dòng)的"救火隊(duì)員"轉(zhuǎn)變?yōu)橹鲃?dòng)的"系統(tǒng)架構(gòu)師"。記?。?strong>優(yōu)秀的運(yùn)維不是沒(méi)有故障,而是能在故障發(fā)生前發(fā)現(xiàn)征兆,在故障發(fā)生時(shí)快速恢復(fù)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11186

    瀏覽量

    221158
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11575

    瀏覽量

    216575
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3155

    瀏覽量

    75858

原文標(biāo)題:Linux 運(yùn)維進(jìn)階:從基礎(chǔ)命令到系統(tǒng)優(yōu)化的深度剖析

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux find命令用法

    可以很肯定地說(shuō),find 命令Linux 后臺(tái)開(kāi)發(fā)人員必須熟知的操作之一,除非您使用的是 Windows Server。
    發(fā)表于 10-12 11:27 ?705次閱讀

    SQLx的基礎(chǔ)用法進(jìn)階用法

    SQLx是一個(gè)Rust語(yǔ)言的異步SQL數(shù)據(jù)庫(kù)訪問(wèn)庫(kù),支持多種數(shù)據(jù)庫(kù),包括PostgreSQL、MySQL、SQLite等。本教程將以SQLite為例,介紹SQLx的基礎(chǔ)用法進(jìn)階用法。 基礎(chǔ)
    的頭像 發(fā)表于 09-19 14:29 ?3582次閱讀

    Stream模塊的基礎(chǔ)用法進(jìn)階用法

    有用。在本教程中,我們將介紹 Stream 模塊的基礎(chǔ)用法進(jìn)階用法,并提供示例。 基礎(chǔ)用法 在本節(jié)中,我們將介紹 Stream 模塊的基礎(chǔ)用法
    的頭像 發(fā)表于 09-19 15:33 ?1808次閱讀

    linux中comm命令用法

    linux系統(tǒng)中comm命令用法詳解 linux系統(tǒng)下的comm命令是一個(gè)非常實(shí)用的文件對(duì)比命令
    發(fā)表于 07-04 08:22

    Linux中的35個(gè)find命令用法

    Linux查找命令Linux系統(tǒng)中最重要和最常用的命令之一。查找用于根據(jù)與參數(shù)匹配的文件指定的條件來(lái)搜索和查找文件和目錄列表的命令
    的頭像 發(fā)表于 02-02 16:53 ?4178次閱讀
    <b class='flag-5'>Linux</b>中的35個(gè)find<b class='flag-5'>命令</b><b class='flag-5'>用法</b>

    詳談Linux的find命令

    find 是 Linux 下最有用的命令之一,熟練的使用它對(duì)于提高工作效率很有幫助。下面介紹它的一些用法
    的頭像 發(fā)表于 06-23 09:43 ?3414次閱讀
    詳談<b class='flag-5'>Linux</b>的find<b class='flag-5'>命令</b>

    linux的scp命令怎么用_linux的grep命令用法

    linux中,scp命令用于Linux之間復(fù)制文件和目錄,即在一臺(tái)Linux服務(wù)器中將本地的文件上傳到一臺(tái)遠(yuǎn)端服務(wù)器,或?qū)⑦h(yuǎn)端服務(wù)器的文件下載到本地。scp是
    發(fā)表于 09-04 15:36 ?4698次閱讀
    <b class='flag-5'>linux</b>的scp<b class='flag-5'>命令</b>怎么用_<b class='flag-5'>linux</b>的grep<b class='flag-5'>命令</b><b class='flag-5'>用法</b>

    如何在Linux使用touch命令

    Linux touch命令用于更改文件時(shí)間戳。但touch命令的最常見(jiàn)用法是創(chuàng)建文件。
    的頭像 發(fā)表于 12-05 17:21 ?2595次閱讀

    Linux系統(tǒng)維護(hù)命令用法

    Linux有很多命令,每個(gè)命令基本可以用一篇文章介紹,本文僅簡(jiǎn)單總結(jié)一些常用系統(tǒng)維護(hù)命令用法
    的頭像 發(fā)表于 04-17 14:57 ?1495次閱讀
    <b class='flag-5'>Linux</b>系統(tǒng)維護(hù)<b class='flag-5'>命令</b>的<b class='flag-5'>用法</b>

    基于select!宏的進(jìn)階用法

    宏,它可以讓我們同時(shí)監(jiān)聽(tīng)多個(gè)異步事件,一旦其中一個(gè)事件觸發(fā),就可以立即執(zhí)行相應(yīng)的代碼。在本教程中,我們將詳細(xì)介紹 select!宏的進(jìn)階用法,并提供多個(gè)示例來(lái)幫助您更好地理解和掌握這個(gè)宏的使用方法。 進(jìn)階
    的頭像 發(fā)表于 09-19 15:35 ?1285次閱讀

    linux中source命令用法

    Linux中,source命令通常用于重新執(zhí)行剛修改的初始化文件,使之立即生效,而不必注銷(xiāo)并重新登錄。source命令可以用于讀取并執(zhí)行腳本文件中的命令,通常用于在當(dāng)前shell環(huán)境
    的頭像 發(fā)表于 11-08 14:35 ?3563次閱讀

    linux查看物理接口的命令

    Linux操作系統(tǒng)提供了多種命令和工具來(lái)查看物理接口。在這篇文章中,我們將詳細(xì)介紹一些最常用和常見(jiàn)的命令,以及它們的用法和輸出。 ifconfig
    的頭像 發(fā)表于 11-16 16:48 ?2246次閱讀

    linux常用命令用法

    Linux是一種開(kāi)源的操作系統(tǒng),它以穩(wěn)定、高效和安全的特點(diǎn)受到廣大用戶(hù)的喜愛(ài)。掌握Linux的常用命令及其用法對(duì)于操作系統(tǒng)的管理和開(kāi)發(fā)都至關(guān)重要。本文將詳盡、詳實(shí)、細(xì)致地介紹
    的頭像 發(fā)表于 11-17 09:47 ?1182次閱讀

    總結(jié)linux命令行的主要用法

    Linux命令行是一種在Linux操作系統(tǒng)中通過(guò)文本界面來(lái)執(zhí)行指令和管理系統(tǒng)的方式。它提供了豐富的功能和靈活性,幫助用戶(hù)完成各種任務(wù)。本文將詳細(xì)介紹Linux
    的頭像 發(fā)表于 11-17 10:19 ?1176次閱讀

    Linux lsof命令的基本用法

    linux 系統(tǒng)中,一切皆文件。通過(guò)文件不僅僅可以訪問(wèn)常規(guī)數(shù)據(jù),還可以訪問(wèn)網(wǎng)絡(luò)連接和硬件。所以 lsof 命令不僅可以查看進(jìn)程打開(kāi)的文件、目錄,還可以查看進(jìn)程監(jiān)聽(tīng)的端口等 socket 相關(guān)的信息。本文將介紹 lsof 命令
    的頭像 發(fā)表于 10-23 11:52 ?1896次閱讀
    <b class='flag-5'>Linux</b> lsof<b class='flag-5'>命令</b>的基本<b class='flag-5'>用法</b>