歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> 盤點linux系統中的12條性能調優命令

盤點linux系統中的12條性能調優命令

日期:2017/3/6 9:49:24   编辑:學習Linux

盤點linux系統中的12條性能調優命令


盤點linux系統中的12條性能調優命令


導讀性能調優一直是運維工程師最重要的工作之一,如果您所在的生產環境中遇到了系統響應速度慢,硬盤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次)。

iostat

blk_read/s 每秒讀取的數據塊數

blk_wrtn/s 每秒寫入的數據塊數

blk_read 表示讀取的所有數據塊數

blk_wrtn 表示寫入的所有數據塊數

3,vmstat報告內存以及CPU狀況:
名稱:報告虛擬內存的統計信息格式:vmstat [-n] [延時[次數]]

vmstat

R:運行和等待CPU時間片的進程數。長期大於CPU的個數,代表CPU不足B:等待資源的進程數,如果等待數量多,問題有可能處在I/O或者內存Swpd:切換到內存交換區的內存大小[以KB為單位]free:當前空閒的物理內存數量[以KB為單位]si:由磁盤調入內存so:由內存調入磁盤bi:從塊設備讀入數據的總量bo:寫到塊設備的數據總量bi+bo1000 如果超過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

sar

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,調優硬盤優先寫入/讀取數據用:

硬盤IO速度
預先讀取需要寫入的量,然後再處理寫請求,↑讀到的值將會是設置值的一半↑。
設置讀取到緩存中的數值越大.寫入時就會因為數據量大而速度變慢。

/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%

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

獨立設備性能速度比集成的強,因為不占用主機整體資源
工程師一般不會遠程管理計算機,需要提供日志等信息
硬盤空間越大,讀取的速度越慢,可以考慮用多塊硬盤組成一塊較大空間
分區只是在硬盤上做標識,而不像格式化在做文件系統特性,所以速度快
硬盤越靠外側速度越快[分區號越小越靠外區,所以將數據量大的首先分區].
程序開發者注重雇主的功能要求,系統管理員注重程序的資源開銷

原文首發自《Linux就該這麼學》:http://www.linuxprobe.com/linux-performance-tuning/作者:劉遄

http://xxxxxx/Linuxjc/1134146.html TechArticle

Copyright © Linux教程網 All Rights Reserved