中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

服務器IO高問題定位和優(you)化

這(zhe)次(ci)分享主要(yao)是針對大家經常面(mian)試中遇到的(de)性能相(xiang)關問題的(de)可能猜測和定位、解決的(de)方法,我在(zai)面(mian)試的(de)過程中發(fa)現好多同學并沒有一個清晰的(de)思路

本課程的主旨及目標

?導致服(fu)務器IO高的常見原因

?常見定位問題的方法

 

==導致服務器IO高的常見(jian)原因(yin)=========================================================================

簡介:磁盤通常是(shi)計算機最(zui)(zui)慢的(de)子系統(tong),也是(shi)最(zui)(zui)容易出現性能瓶頸的(de)地方(fang),因為(wei)磁盤離(li)CPU 距(ju)離(li)最(zui)(zui)遠而且CPU 訪問磁盤要涉及到機械操作(zuo),比(bi)如轉(zhuan)軸、尋軌等。

占用IO過高,可以(yi)做如下考(kao)慮:

1)首(shou)先考(kao)慮寫(xie)日志內容過多(duo)(或者(zhe)訪問量較大)

  1】日志打印的內容是(shi)否(fou)合理

  前端應用服務器,要(yao)避免程序(xu)頻繁打本地日志、或(huo)者異常(chang)日志

  2】日志級別是否合(he)理

  3】考(kao)慮異(yi)步寫日(ri)(ri)志(zhi)(一般可以解(jie)決CPU鋸(ju)齒(chi)波(bo)動),為(wei)減(jian)少磁  盤IO操作,將(jiang)日(ri)(ri)志(zhi)寫如內存分區;但日(ri)(ri)志(zhi)量太大(da),很容(rong)易將(jiang)內存  寫滿,再(zai)考(kao)慮將(jiang)日(ri)(ri)志(zhi)進行壓縮。

 ; 2)磁盤(pan)滿(壓測過(guo)程中現象:TPS降低,響應(ying)時(shi)間增加(jia))

  1】找到導致(zhi)磁盤滿的大文件,合(he)理的刪除(chu),最好有(you)定(ding)期清理腳(jiao)  本,可以定(ding)期清理

  2】對磁(ci)盤空(kong)間進行擴大磁(ci)盤容量

  3】不好清理(li)的,在主硬盤上進行讀寫(xie)操作,基礎數據定時移(yi)動  到掛(gua)載硬盤上。 

3)數據庫連(lian)接數超限制(zhi),導致sleep比(bi)較多,sleep任務(wu)太多的處理:

  1】程序里每次連接(jie)數據(ju)庫后,記得關閉數據(ju)庫。

  2】或者,在mysql配(pei)置文件中(zhong),設置mysql超時(shi)時(shi)間wait_timout,  默(mo)認是八(ba)小時(shi),設置低一點

4)數據庫(ku)IO過高,查詢量大,可以(yi)進行讀寫分離(增加讀庫(ku))或者分庫(ku)操作,減(jian)小磁盤壓力,調優(you)一些buffer參數以(yi)降低IO寫的頻率

5)磁盤IO過高是由(you)于讀(du)寫文(wen)件(jian)導致的

  1】可以(yi)利用raid來減輕壓力(li)

6)磁盤(pan)本身性能不足(zu)

  1】考慮更換新磁盤(性(xing)能強勁的)

==常見定位(wei)問題的方法(fa)==================================================================

Linux系(xi)統出現了性能問題,一般我們可以(yi)通過top、iostat、iotop、free、vmstat等命(ming)令(ling)來查看初步定(ding)位(wei)問題。

今天我們講解就是(shi)iostat和iotop,定位問題的一(yi)般步驟:

Step-1】 iostat這個命令可以(yi)給我們提(ti)供(gong)豐富的IO狀態數據,一般(ban)我們先(xian)通(tong)過該命令來查(cha)看是否(fou)存在性能瓶頸

Step-2】用(yong)iotop找出(chu)io高(gao)的(de)進程

1、iostat常見用法(fa):

iostat -d -k 1 10     ;   #查看(kan)TPS和吞吐量信息

參數 -d 表示,顯示設備(磁盤(pan))使(shi)用狀態;

-k某些使(shi)用block為(wei)單(dan)位的列強制使(shi)用Kilobytes為(wei)單(dan)位;

1 10表示,數據顯(xian)(xian)示每隔1秒刷新一(yi)次,共顯(xian)(xian)示10次

 

 

iostat -d -x -k 1 10      #查看設備(bei)使用率(lv)(%util)、響應時間(await)

使用-x參數我們可以獲得更多統計信息。
注意】一(yi)般%util大于(yu)70%,I/O壓力就(jiu)比(bi)較大,說明產生的(de)I/O請求(qiu)太(tai)多(duo),I/O系統已(yi)經滿(man)負(fu)荷,該磁盤可能存在(zai)瓶(ping)頸。磁盤可能存在(zai)瓶(ping)頸。

 

 

iostat還可(ke)以用來獲取cpu部(bu)分狀態值(zhi):

iostat -c 1 10    #查(cha)看cpu狀態(tai)

注意】idle小于70% IO壓力就較大了,一般讀(du)取速(su)度有較多的wait。

 

 

 2、我們通過上面iostat的常用命令基本可以判斷IO是否存在瓶頸了,然后我們通過iotop命令來抓出罪魁禍首的進程,這里比較簡單直接輸入命令,然后執行(一般抓到的是java進程、mysqld,干的越多問題越多)

 

 

 

 

————————————————
版權聲明:本文為CSDN博主「yw804909465」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接(jie)://blog.csdn.net/yw804909465/article/details/90544023

posted on 2020-03-27 10:09  糖醋里脊  閱讀(1244)  評論(0)    收藏  舉報

導航