linux中常用調優方法,linux常用調優方法

來源:互聯網
上載者:User

linux中常用調優方法,linux常用調優方法

效能調優一直是營運工程師最重要的工作之一,如果您所在的生產環境中遇到了系統響應速度慢,硬碟IO輸送量異常,資料處理速度低於預期值的情況,又或者如CPU、記憶體、硬碟、網路等系統資源長期處於耗盡的狀態,那麼這篇文章將著實的能協助到你,如果沒有也請先收藏起來。

1,hdparm查看硬度讀取速度:

命令:hdparm -t /dev/sda5列印:Timing buffered disk reads: 254 MB in 3.01 seconds = 84.34 MB/sec說明:能夠指定具體的哪塊硬碟進行查詢的哦!

2,iostat檢測磁碟IO情況:

格式:iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval ]描述:iostat是I/O statistics(輸入/輸出統計)的縮寫,iostat工具將對系統的磁碟操作活動進行監視。它的特點是彙報磁碟活動統計情況,同時也會彙報出CPU使用方式,同vmstat一樣,iostat也有一個弱點,就是它不能對某個進程進行深入分析,僅對系統的整體情況進行分析,每1秒檢測統計一次(共5次)。

blk_read/s 每秒讀取的資料區塊數

blk_wrtn/s 每秒寫入的資料區塊數

blk_read 表示讀取的所有資料區塊數

blk_wrtn 表示寫入的所有資料區塊數

3,vmstat報告記憶體以及CPU狀況:

名稱:報告虛擬記憶體的統計資訊格式:vmstat [-n] [延時[次數]]

R: 運行和等待CPU時間片的進程數。長期大於CPU的個數,代表CPU不足
B: 等待資源的進程數,如果等待數量多,問題有可能處在I/O或者記憶體
Swpd: 切換到記憶體交換區的記憶體大小[以KB為單位]
free: 當前閒置實體記憶體數量[以KB為單位]
si: 由磁碟調入記憶體
so: 由記憶體調入磁碟
bi: 從塊裝置讀入資料的總量
bo: 寫到塊裝置的資料總量
bi+bo 1000 如果超過1000,代表硬碟的讀寫速度有問題
in: 在某一時間間隔內觀測到的每秒裝置中斷數[中斷數太多對效能不好]
cs: 列表示每秒產生的環境切換次數
us+sy > 80% 代表CPU資源不足
us: 使用者進程消耗的CPU時間百分比
sy: 核心進程消耗的CPU時間百分比
id: CPU處在空閑狀態的時間百分比
wa: IO等待所佔用的時間百分比
runq-sz: 記憶體中可以啟動並執行進程數
plist-sz: 系統中活躍的任務個數

4,sar檢測CPU資源:

任務計劃 /etc/cron.d/sysstat日誌目錄 /var/log/sa查看方法 Sar –q –f /var/log/sa/sa10

5,lscpu顯示CPU資訊:

dmesg 顯示出開機啟動的資訊 lscpu 顯示CPU資訊 lscpu -p 顯示CPU對應的節點數getconf LONG_BIT 獲知主機的位元 getconf -a 查看全部的參數 /sys/class/dmi/id 可以查看Bios的資訊 bios_*

6,strace顯示程式的調用:

strace –fc elinks –dump http://localhost

7,調優硬碟優先寫入/讀取資料用:

預先讀取需要寫入的量,然後再處理寫請求,↑讀到的值將會是設定值的一半↑。

設定讀取到緩衝中的數值越大.寫入時就會因為資料量大而速度變慢。

/sys/block/sda/queue/nr_requests 隊列長度越大,硬碟IO速度會提升,但佔用記憶體

/sys/block/sda/queue/scheduler 調度演算法Noop、anticipatory、deadline、[cfq]

8,將Ext3檔案系統的日誌功能獨立:

1、建立200M的/dev/sdb1 格式化為ext32、dumpe2fs /dev/sdb1查看檔案系統功能中包含的has_journal3、Tune2fs –O ^has_journal /dev/sdb1 去掉預設原有的日誌功能4、再分一個200M的分區./dev/sdb2. 記錄磁碟區的block必須等於 /dev/sdb1Mke2fs –O journal_dev –b 1024 /dev/sdb25、將/dev/sdb2作為/dev/sdb1的記錄磁碟區.Tune2fs –j –J device=/dev/sdb2 /dev/sdb1

9,關閉記錄檔案系統atime:

對於網站檔案,頻繁的修改atime是沒有意義的,會影響效能mount –o remount,noatime DEVICE 即可

10、修改檔案日誌的提交時間:

預設是5秒提交一次日誌,修改更長時間可以提高效能,但容易遺失資料。mount –o remount,commit=15 DEVICE
11,RAID輪循寫入調優,適用於0/5/6:

chunk size.輪循一次寫入的位元組.預設是64K,只要沒有寫滿,就不會移動到下一個裝置

設定在每個硬碟都唯寫一個檔案就切換到下一塊硬碟,那麼如果都是1K的小檔案,就會將系統資源浪費在切換硬碟上

如果將chunk size的值設定很大,比如100M,那麼也就沒有了意義,還不如用一塊硬碟。

Stripe size.條帶大小,並不是有資料就寫入,而是設定每次寫入的資料量,一般是16K寫一次。

所以.Chunk size(64K)/stripe size(16K),也就是說每塊硬碟寫四次。

------------------------------------算當前應該把chunk size調成多少------------------------------------

使用iostat –x查看自開機以來每秒的平均請求數avgrq-sz

chunk size = 每秒請求數*512/1024/磁碟數,取一個最緊接2倍數的整數

stride = chunk size /block(預設是4k)

建立raid並設定chunk sinze

mdadm –C /dev/md0 –l 0 –n3 –chunk=8 /dev/sdb[123]

修改raid

mke2fs –j –b 4096 –E stride=2 /dev/md0

12,硬碟的block保留數:

 dumpe2fs /dev/sda1 tune2fs –m 10 /dev/sda1 保留block百分比 tune2fs –r 保留block數 保留的block過少,影響效能,保留的過多又浪費硬碟,預設是5%

學習了上面的效能調優命令和方法後,再總結幾條調優的金句:

獨立裝置效能速度比整合的強,因為不佔用主機整體資源

工程師一般不會遠端管理電腦,需要提供日誌等資訊

硬碟空間越大,讀取的速度越慢,可以考慮用多塊硬碟組成一塊較大空間

分區只是在硬碟上做標識,而不像格式化在做檔案系統特性,所以速度快

硬碟越靠外側速度越快[分區號越小越靠外區,所以將資料量大的首先分區].

程式開發人員注重僱主的功能要求,系統管理員注重程式的資源開銷

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.