成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

linux命令思路 linux命令用法

如何找出Linux系統(tǒng)高IO的思路總結(jié)

前言

祁東ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

I/O Wait是一個需要使用高級的工具來debug問題原因,當(dāng)然也有許多基本工具的高級用法。I/O wait的問題難以定位的原因是:因為我們有很多工具可以告訴你I/O 受限了,但是并沒有告訴你具體是哪個進程引起的。

1. 如何確認,是否是I/O問題導(dǎo)致系統(tǒng)緩慢

確認是否是I/O導(dǎo)致的系統(tǒng)緩慢我們可以使用多個命令,但是,最簡單的是unix的命令 top

# top

top - 14:31:20 up 35 min, 4 users, load average: 2.25, 1.74, 1.68

Tasks: 71 total, 1 running, 70 sleeping, 0 stopped, 0 zombie

Cpu(s): 2.3%us, 1.7%sy, 0.0%ni, 0.0%id, 96.0%wa, 0.0%hi, 0.0%si, 0.0%st

Mem: 245440k total, 241004k used, 4436k free, 496k buffers

Swap: 409596k total, 5436k used, 404160k free, 182812k cached

從CPU這行,可以發(fā)現(xiàn)CPU的io wait;這里是96.0%。越高就代表CPU用于io wait的資源越多。

2. 找出哪個磁盤正在被寫入

上邊的top命令從一個整體上說明了I/O wait,但是并沒有說明是哪塊磁盤影響的,想知道是哪塊磁盤引發(fā)的問題,可以使用另外一個命令 iostat 命令

$ iostat -x 2 5

avg-cpu: %user %nice %system %iowait %steal %idle

3.66 0.00 47.64 48.69 0.00 0.00

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util

sda 44.50 39.27 117.28 29.32 11220.94 13126.70 332.17 65.77 462.79 9.80 2274.71 7.60 111.41

dm-0 0.00 0.00 83.25 9.95 10515.18 4295.29 317.84 57.01 648.54 16.73 5935.79 11.48 107.02

dm-1 0.00 0.00 57.07 40.84 228.27 163.35 8.00 93.84 979.61 13.94 2329.08 10.93 107.02

iostat 會每2秒更新一次,一共打印5次信息, -x 的選項是打印出擴展信息

第一個iostat 報告會打印出系統(tǒng)最后一次啟動后的統(tǒng)計信息,這也就是說,在多數(shù)情況下,第一個打印出來的信息應(yīng)該被忽略,剩下的報告,都是基于上一次間隔的時間。舉例子來說,這個命令會打印5次,第二次的報告是從第一次報告出來一個后的統(tǒng)計信息,第三次是基于第二次 ,依次類推

所以,一定記?。旱谝粋€忽略!

在上面的例子中,sda的%utilized 是111.41%,這個很好的說明了有進程正在寫入到sda磁盤中。

除了%utilized 外,我們可以從iostat得到更加豐富的資源信息,例如每毫秒讀寫請求(rrqm/s wrqm/s)),每秒讀寫的((r/s w/s)。在上邊的例子中,我們的項目看起來正在讀寫非常多的信息。這個對我們查找相應(yīng)的進程非常有用。

3. 找出導(dǎo)致高IO的進程

# iotop

Total DISK READ: 8.00 M/s | Total DISK WRITE: 20.36 M/s

TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND

15758 be/4 root 7.99 M/s 8.01 M/s 0.00 % 61.97 % bonnie++ -n 0 -u 0 -r 239 -s 478 -f -b -d /tmp

最簡單的方法就是用iotop找出哪個進程用了最多的存儲資源,從上面可以看到是bonnie++。

iotop很好用,但是不是默認安裝的。

如果沒有iotop,下面的方式也可以讓你有種方法縮小范圍,盡快找到是哪個進程。

ps 命令對內(nèi)存和CPU有一個統(tǒng)計,但是他沒有對磁盤I/O的統(tǒng)計,雖然他沒有顯示磁盤I/O,但是它顯示進行的狀態(tài),我們可以用來知道一個進程是否正在等待I/O

主要的進程狀態(tài)有:

PROCESS STATE CODES

D uninterruptible sleep (usually IO)

R running or runnable (on run queue)

S interruptible sleep (waiting for an event to complete)

T stopped, either by a job control signal or because it is being traced.

W paging (not valid since the 2.6.xx kernel)

X dead (should never be seen)

Z defunct ("zombie") process, terminated but not reaped by its parent.

等待I/O的進程的狀態(tài)一般是“uninterruptible sleep”,或者“D”,我們可以很容易的查找到正在等待I/O的進程

# for x in `seq 1 1 10`; do ps -eo state,pid,cmd | grep "^D"; echo "----"; sleep 5; done

D 248 [jbd2/dm-0-8]

D 16528 bonnie++ -n 0 -u 0 -r 239 -s 478 -f -b -d /tmp

----

D 22 [kswapd0]

D 16528 bonnie++ -n 0 -u 0 -r 239 -s 478 -f -b -d /tmp

----

D 22 [kswapd0]

D 16528 bonnie++ -n 0 -u 0 -r 239 -s 478 -f -b -d /tmp

----

D 22 [kswapd0]

D 16528 bonnie++ -n 0 -u 0 -r 239 -s 478 -f -b -d /tmp

----

D 16528 bonnie++ -n 0 -u 0 -r 239 -s 478 -f -b -d /tmp

上邊的例子會循環(huán)的輸出狀態(tài)是D的進程,每5秒一次,一共10次

從輸出我們可以知道 bonnie++ 的pid是16528 ,在waiting,bonnie++看起來就是我們想找到的進程,但是,只是從它的狀態(tài),我們沒有辦法證明就是bonnie++引起的I/O等待。

為了證明,我們可以可以查看/proc,每個進程目錄下都有一個叫io的文件,里邊保存這和iotop類似的信息。

# cat /proc/16528/io

rchar: 48752567

wchar: 549961789

syscr: 5967

syscw: 67138

read_bytes: 49020928

write_bytes: 549961728

cancelled_write_bytes: 0

read_bytes和write_bytes是這個進程從磁盤讀寫的字節(jié),在這個例子中,bonnie++進程讀取了46M的數(shù)據(jù)并且寫入了524MB的數(shù)據(jù)到磁盤上。

4. 找出哪個文件正在被大量寫入

lsof 命令可以展示一個進程打開的所有文件。從這個列表中,我們可以找到哪個文件被寫入。

# lsof -p 16528

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

bonnie++ 16528 root cwd DIR 252,0 4096 130597 /tmp

truncated

bonnie++ 16528 root 8u REG 252,0 501219328 131869 /tmp/Bonnie.16528

bonnie++ 16528 root 9u REG 252,0 501219328 131869 /tmp/Bonnie.16528

bonnie++ 16528 root 10u REG 252,0 501219328 131869 /tmp/Bonnie.16528

bonnie++ 16528 root 11u REG 252,0 501219328 131869 /tmp/Bonnie.16528

bonnie++ 16528 root 12u REG 252,0 501219328 131869 strong/tmp/Bonnie.16528/strong

# df /tmp

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/mapper/workstation-root 7667140 2628608 4653920 37% /

# pvdisplay

--- Physical volume ---

PV Name /dev/sda5

VG Name workstation

PV Size 7.76 GiB / not usable 2.00 MiB

Allocatable yes

PE Size 4.00 MiB

Total PE 1986

Free PE 8

Allocated PE 1978

PV UUID CLbABb-GcLB-l5z3-TCj3-IOK3-SQ2p-RDPW5S

使用pvdisplay可以看到,pv設(shè)備就是/dev/sda5,正是我們前面找到的sda。

參考文檔:

如何通過PHP執(zhí)行l(wèi)inux命令

你想問得是php如何執(zhí)行shell命令把?\x0d\x0a\x0d\x0a可以用system(),exec(),passthru()這三個函數(shù)實現(xiàn)\x0d\x0a雖然這三個命令都能執(zhí)行l(wèi)inux系統(tǒng)的shell命令,但是其實他們是有區(qū)別的:\x0d\x0a system() 輸出并返回最后一行shell結(jié)果。\x0d\x0a exec() 不輸出結(jié)果,返回最后一行shell結(jié)果,所有結(jié)果可以保存到一個返回的數(shù)組里面。\x0d\x0a passthru() 只調(diào)用命令,把命令的運行結(jié)果原樣地直接輸出到標(biāo)準(zhǔn)輸出設(shè)備上。\x0d\x0a 相同點:都可以獲得命令執(zhí)行的狀態(tài)碼\x0d\x0a例子:system("ls -al");\x0d\x0a【使用之前要在php.ini中把safe_mode關(guān)閉】

誰能教教我這Linux項目怎么入手分析以及所需命令,只要能給思路和命令,懸賞值立即給。

top命令是Linux下常用的性能分析工具,能夠?qū)崟r顯示系統(tǒng)中各個進程的資源占用狀況,類似于Windows的任務(wù)管理器。下面詳細介紹它的使用方法。

top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48

Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie

Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si

Mem: 191272k total, 173656k used, 17616k free, 22052k buffers

Swap: 192772k total, 0k used, 192772k free, 123988k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

1379 root 16 0 7976 2456 1980 S 0.7 1.3 0:11.03 sshd

14704 root 16 0 2128 980 796 R 0.7 0.5 0:02.72 top

1 root 16 0 1992 632 544 S 0.0 0.3 0:00.90 init

2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0

3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0

統(tǒng)計信息區(qū)前五行是系統(tǒng)整體的統(tǒng)計信息。第一行是任務(wù)隊列信息,同 uptime 命令的執(zhí)行結(jié)果。其內(nèi)容如下:

01:06:48 當(dāng)前時間

up 1:22 系統(tǒng)運行時間,格式為時:分

1 user 當(dāng)前登錄用戶數(shù)

load average: 0.06, 0.60, 0.48 系統(tǒng)負載,即任務(wù)隊列的平均長度。

三個數(shù)值分別為 1分鐘、5分鐘、15分鐘前到現(xiàn)在的平均值。

第二、三行為進程和CPU的信息。當(dāng)有多個CPU時,這些內(nèi)容可能會超過兩行。內(nèi)容如下:

Tasks: 29 total 進程總數(shù)

1 running 正在運行的進程數(shù)

28 sleeping 睡眠的進程數(shù)

0 stopped 停止的進程數(shù)

0 zombie 僵尸進程數(shù)

Cpu(s): 0.3% us 用戶空間占用CPU百分比

1.0% sy 內(nèi)核空間占用CPU百分比

0.0% ni 用戶進程空間內(nèi)改變過優(yōu)先級的進程占用CPU百分比

98.7% id 空閑CPU百分比

0.0% wa 等待輸入輸出的CPU時間百分比

0.0% hi

0.0% si

最后兩行為內(nèi)存信息。內(nèi)容如下:

Mem: 191272k total 物理內(nèi)存總量

173656k used 使用的物理內(nèi)存總量

17616k free 空閑內(nèi)存總量

22052k buffers 用作內(nèi)核緩存的內(nèi)存量

Swap: 192772k total 交換區(qū)總量

0k used 使用的交換區(qū)總量

192772k free 空閑交換區(qū)總量

123988k cached 緩沖的交換區(qū)總量。

內(nèi)存中的內(nèi)容被換出到交換區(qū),而后又被換入到內(nèi)存,但使用過的交換區(qū)尚未被覆蓋,

該數(shù)值即為這些內(nèi)容已存在于內(nèi)存中的交換區(qū)的大小。

相應(yīng)的內(nèi)存再次被換出時可不必再對交換區(qū)寫入。

進程信息區(qū)統(tǒng)計信息區(qū)域的下方顯示了各個進程的詳細信息。首先來認識一下各列的含義。

序號 列名 含義

a PID 進程id

Linux網(wǎng)絡(luò)異常排查思路與方法

處理問題時必定不能盲狙,將所有解決辦法都試上一遍。這生產(chǎn)環(huán)境中,解決出現(xiàn)的問題是最優(yōu)先的事情,當(dāng)然前提是這問題會影響用戶的使用或即將影響到的。

處理每個問題必然可按具體問題進行分類,根據(jù)每一類按對應(yīng)的解決思路來執(zhí)行。

但像處理一個網(wǎng)絡(luò)問題的時候,上至系統(tǒng)防火墻的配置、下至硬件故障。如果處理一個問題都按固定流程來進行的話,那必然效率將非常低下。下為處理網(wǎng)絡(luò)故障的一般流程。

1、網(wǎng)絡(luò)硬件問題檢查。???????????????????? (機率較低)

2、檢查網(wǎng)卡能否正常工作。??????????? (較高、主要表現(xiàn)為人為配置錯誤)

3、檢查局域網(wǎng)之間聯(lián)機是否正常。(非常高)

4、檢查DNS是否設(shè)定正確。??????????? (較低)

5、服務(wù)是否正常打開。???????????????????? (低)

6、檢查訪問權(quán)限是否打開。??????????? (較高)

假如從1至6是標(biāo)準(zhǔn)的處理網(wǎng)絡(luò)問題的流程,這樣的處理方式效率低下。處理問題可以有整體的流程,但是實際操作中可先對出現(xiàn)機率更高的步驟進行檢查、或采取2分法縮小產(chǎn)生問題的范圍,雖然上述較的兩個方法不一定對所有問題都試用,但對于大多數(shù)的網(wǎng)絡(luò)問題來說處理效率有者顯著的提升。

個人總結(jié)的情況如下。

1、lsmod | grep ip??????????? 查看相關(guān)的網(wǎng)卡模塊是否已加載

2、ifconfig -a??????????????????? 能使用該命令查找到對應(yīng)網(wǎng)卡配置信息,則說明網(wǎng)卡驅(qū)動程序正常

3、使用ping命令、依次ping自己、ping局域網(wǎng)主機、ping網(wǎng)關(guān)

ping自己異常,問題:服務(wù)異常、網(wǎng)卡配置未生效

ping局域網(wǎng)主機異常,問題:配置文件有誤、網(wǎng)卡配置未生效、網(wǎng)線損壞

ping網(wǎng)關(guān)異常,問題:配置文件有誤、網(wǎng)卡配置未生效

4、當(dāng)前3步還不能正常上外網(wǎng)的話。所有route查看默認路由表。

處理方法:刪除不必要的路由信息,并保證默認路由是從對應(yīng)網(wǎng)關(guān)地址出去的。

5、臨時停止iptables服務(wù)、SELinux服務(wù)、NetworkManager服務(wù)

6、如能上網(wǎng)但訪問域名有異常時,那將需要檢查/etc/hosts、/etc/resolv.conf兩個配置

7、假如以上6步檢查完畢之后,還發(fā)現(xiàn)不能上網(wǎng)。有如下可能。

7.1、主機MAC地址被路由器禁止上網(wǎng)

7.2、外網(wǎng)服務(wù)異常。如寬帶賬號欠費、光纖被挖斷等物理攻擊。

標(biāo)題名稱:linux命令思路 linux命令用法
文章路徑:http://jinyejixie.com/article4/ddojiie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、微信小程序、軟件開發(fā)手機網(wǎng)站建設(shè)、、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
曲沃县| 徐闻县| 濮阳市| 察雅县| 韩城市| 卫辉市| 林甸县| 泾源县| 富顺县| 铁力市| 莫力| 宜良县| 灌云县| 班玛县| 武平县| 张家川| 长乐市| 思南县| 谢通门县| 西充县| 福鼎市| 瓮安县| 合阳县| 板桥市| 杨浦区| 余江县| 邵武市| 潼南县| 江川县| 会泽县| 云浮市| 孝感市| 达孜县| 邓州市| 昭平县| 柘城县| 大庆市| 横山县| 永城市| 崇文区| 汝城县|