linux讀寫速度
❶ linux怎麼計算io讀寫速度
Linux下測試磁碟的讀寫IO速度,使用hdparm命令,下面是測試方法:
#hdparm-Tt/dev/sda
/dev/sda:
Timingcachedreads:6676MBin2.00seconds=3340.18MB/sec
Timingbuffereddiskreads:218MBin3.11seconds=70.11MB/sec
#可以看到,2秒鍾讀取了6676MB的緩存,約合3340.18MB/sec;
#在3.11秒中讀取了218MB磁碟(物理讀),讀取速度約合70.11MB/sec;
❷ Linux 如何測試 IO 性能(磁碟讀寫速度
linux下測試磁碟IO讀寫速度
[root@node3 /]# time dd if=/dev/sda2 of=/dev/null bs=8k count=524288
524288+0 records in
524288+0 records out
4294967296 bytes (4.3 GB) copied, 37.4222 seconds, 115 MB/s
real 0m37.497s
user 0m0.036s
sys 0m1.320s
了4.3G的數據,平均速度為115M/s
[root@node3 /]# hdparm -t /dev/sda2
/dev/sda2:
Timing buffered disk reads: 284 MB in 3.00 seconds = 94.55 MB/sec
[root@node3 /]# hdparm -t /dev/sda2
/dev/sda2:
Timing buffered disk reads: 292 MB in 3.02 seconds = 96.82 MB/sec
讀了將近300M的數據,平均速度大約為95M/s
經過以上的測試數據大體估算該磁碟的性能大約為100M/s
❸ 如何使用Linux命令行檢測DVD刻錄機的名字和讀寫速度
提問 :我想要知道我的DVD刻錄機的名字和在燒錄時的速度。該使用什麼Linux命令行工具來連測DVD刻錄機的設備名和速度?
如今大多數消費PC和筆記本電腦都配備了DVD刻錄機。在Linux中,光碟驅動器,如CD/DVD驅動器的名字是在引導時內核基於udev規則來命名的。有幾種方法來檢測刻錄機的設備名稱和它的寫入速度。
方法一
找出與DVD刻錄機相關的設備名稱最簡單的方法是使用dmesg命令行工具,它列印出內核的消息緩沖區。在dmesg的輸出中,尋找一個安裝好的DVD刻錄機:
$ dmesg | egrep -i --color 'dvd|cd/rw|writer'
上述命令的輸出會告訴你你的Linux系統上是否檢測到了DVD刻錄機以及它被分配的名字。本例中,DVD刻錄機的設備名稱為「/dev/sr0」。雖然此方法不會告訴你的寫入速度
方法二
第二個獲得你DVD刻錄機的信息是使用lsscsi命令,它只是列出了所有可用的SCSI設備。
在基於Debian Linux上安裝 lsscsi :
$ sudo apt-get install lsscsi
在基於Red Hat Linux上安裝:
$ sudo yum install lsscsi
如果成功檢測到,lsscsi命令的輸出會告訴你DVD刻錄機的名稱:
$ lsscsi
這也不會告訴你刻錄機更多的細節,比如寫入速度。
方法三
第三種獲取有關你DVD刻錄機的信息是參考/proc/sys/dev/cdrom/info。
$ cat /proc/sys/dev/cdrom/info
CD-ROM information, Id: cdrom.c 3.20 2003/12/17drive name: sr0drive speed: 24drive # of slots: 1Can close tray: 1Can open tray: 1Can lock tray: 1Can change speed: 1Can select disk: 0Can read multisession: 1Can read MCN: 1Reports media changed: 1Can play audio: 1Can write CD-R: 1Can write CD-RW: 1Can read DVD: 1Can write DVD-R: 1Can write DVD-RAM: 1Can read MRW: 1Can write MRW: 1Can write RAM: 1
本例中,輸出會告訴你DVD刻錄機(/dev/sr0)與x24的CD刻錄速度(即24x153.6 Kbps)兼容,且相當於x3的DVD寫入速度(即3x1385 KBps的)兼容。這里的寫入速度是最大可能的速度,而實際的寫入速度當然取決於使用的介質(例如:DVD-RW、DVD + RW、DVD-RAM等)。
方法四
另一種方法是使用一種稱為wodim命令行程序。在大多數的Linux發行版,這個工具以及它的軟鏈接cdrecord都是默認安裝的。
# wodim -prcap(or cdrecord -prcap)
如果不帶任何參數調用時,wodim命令會自動檢測到DVD刻錄機,並顯示出詳細的功能以及它的最大讀取/寫入速度。例如,你可以找出刻錄機支持哪些媒體(如CD-R、CD-RW、DVD-RW、DVD-ROM、DVD-R、DVD-RAM、音頻CD),以及有哪些如何讀/寫速度。上面的例子中輸出顯示,DVD刻錄機對於CD擁有X24最大寫入速度,對於DVD有X3的最大寫入速度。
需要注意的是wodim命令報告的寫入速度會隨您插入到DVD刻錄機的CD/DVD介質的改變而改變,這反映了媒體規范。
方法五
還有一個方法來檢查DVD刻錄機的寫入速度的是一個名為dvd+rw-mediainfo的工具,這是dvd+rw工具包(DVD+-RW/R媒體工具鏈)的一部分。
在基於Debian 發行版上安裝 dvd+rw-tools
$ sudo apt-get install dvd+rw-tools
在基於Red Hat 發行版上安裝 dvd+rw-tools:
$ sudo yum install dvd+rw-tools
不像其他工具, dvd+rw-mediainfo命令不會產生任何輸出,除非你插入DVD光碟到刻錄機中。所以,當你插入DVD光碟後,運行以下的命令。用你自己的設備名稱替換「/dev/sr0」。
$ sudo dvd+rw-mediainfo /dev/sr0
dvd+rw-mediainfo 工具會探測插入的媒體(本例中是「DVD-R」),以找出對媒體的實際寫入速度。謝謝閱讀,希望能幫到大家,請繼續關注,我們會努力分享更多優秀的文章。
❹ Linux查看實時硬碟讀寫速度
可以參考以下資料
1. 了解hdparm命令Linux上使用hdparm命令查看硬碟信息和測試硬碟讀寫速度。Linux測試硬碟讀寫速度用什麼命令了解hdparm命令
以CentOS7.5為例。默認情況下,並沒有安裝該工具。[root@zcwyou ~]# yum -y install hdparm2. 查看硬碟信息:/dev/sda:SG_IO: bad/missing sense data, sb[]: 70 1c 05 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3. 顯示硬碟的摘要信息
❺ 如何在Linux下測試硬碟的讀寫速度
功能說明:顯示與設定硬碟的參數。 語法:hdparm [-CfghiIqtTvyYZ][-a <快取分區>][-A <0或1>][-c ][-d <0或1>][-k <0或1>][-K <0或1>][-m <分區數>][-n <0或1>][-p ][-P <分區數>][-r <0或1>][-S <時間>][-u <0或1>][-W <0或1>][-X <傳輸模式>][設備] 補充說明:hdparm可檢測,顯示與設定IDE或SCSI硬碟的參數。 測試各硬碟讀取速度判斷硬碟故障 在服務端命令窗口中執行如下命令 hdparm -t /dev/hda (IDE硬碟) hdparm -t /dev/sda (SATA、SCSI、硬RAID卡陣列) hdparm -t /dev/md0 (軟RAID設備) 測試結果在空載情況下應 >40M/s ,在負載情況下平均應 > 20M/s 為正常,如測試結果極低則需要進一步使用硬碟專用檢測工具測試是否為硬碟故障。 參數: -a<快取分區> 設定讀取文件時,預先存入塊區的分區數,若不加上<快取分區>選項,則顯示目前的設定。 -A<0或1> 啟動或關閉讀取文件時的快取功能。 -c 設定IDE32位I/O模式。 -C 檢測IDE硬碟的電源管理模式。 -d<0或1> 設定磁碟的DMA模式。 -f 將內存緩沖區的數據寫入硬碟,並清楚緩沖區。 -g 顯示硬碟的磁軌,磁頭,磁區等參數。 -h 顯示幫助。 -i 顯示硬碟的硬體規格信息,這些信息是在開機時由硬碟本身所提供。 -I 直接讀取硬碟所提供的硬體規格信息。 -k<0或1> 重設硬碟時,保留-dmu參數的設定。 -K<0或1> 重設硬碟時,保留-APSWXZ參數的設定。 -m<磁區數> 設定硬碟多重分區存取的分區數。 -n<0或1> 忽略硬碟寫入時所發生的錯誤。 -p 設定硬碟的PIO模式。 -P<磁區數> 設定硬碟內部快取的分區數。 -q 在執行後續的參數時,不在屏幕上顯示任何信息。 -r<0或1> 設定硬碟的讀寫模式。 -S<時間> 設定硬碟進入省電模式前的等待時間。 -t 評估硬碟的讀取效率。 -T 平谷硬碟快取的讀取效率。 -u<0或1> 在硬碟存取時,允許其他中斷要求同時執行。 -v 顯示硬碟的相關設定。 -W<0或1> 設定硬碟的寫入快取。 -X<傳輸模式> 設定硬碟的傳輸模式。 -y 使IDE硬碟進入省電模式。 -Y 使IDE硬碟進入睡眠模式。 -Z 關閉某些Seagate硬碟的自動省電功能。
❻ linux下怎麼優化磁碟讀寫速度,著急!!!
增加內存緩存。
先寫緩存,再緩存寫磁碟。
成塊的寫。
不過,一般操作系統默認就會這么做。
❼ 用什麼測試linux 硬碟讀寫速度
hdparm -Tt /dev/hda
測試讀寫速率
❽ 如何測試linux磁碟的讀寫速度
功能說明:顯示與設定硬碟的參數。
語法:hdparm [-CfghiIqtTvyYZ][-a <快取分區>][-A <0或1>][-c ][-d <0或1>][-k <0或1>][-K <0或1>][-m <分區數>][-n <0或1>][-p ][-P <分區數>][-r <0或1>][-S <時間>][-u <0或1>][-W <0或1>][-X <傳輸模式>][設備]
補充說明:hdparm可檢測,顯示與設定IDE或SCSI硬碟的參數。
測試各硬碟讀取速度判斷硬碟故障
在服務端命令窗口中執行如下命令
hdparm -t /dev/hda (IDE硬碟)
hdparm -t /dev/sda (SATA、SCSI、硬RAID卡陣列)
hdparm -t /dev/md0 (軟RAID設備)
測試結果在空載情況下應 >40M/s ,在負載情況下平均應 > 20M/s 為正常,如測試結果極低則需要進一步使用硬碟專用檢測工具測試是否為硬碟故障。
參數:
-a<快取分區> 設定讀取文件時,預先存入塊區的分區數,若不加上<快取分區>選項,則顯示目前的設定。
-A<0或1> 啟動或關閉讀取文件時的快取功能。
-c 設定IDE32位I/O模式。
-C 檢測IDE硬碟的電源管理模式。
-d<0或1> 設定磁碟的DMA模式。
-f 將內存緩沖區的數據寫入硬碟,並清楚緩沖區。
-g 顯示硬碟的磁軌,磁頭,磁區等參數。
-h 顯示幫助。
-i 顯示硬碟的硬體規格信息,這些信息是在開機時由硬碟本身所提供。
-I 直接讀取硬碟所提供的硬體規格信息。
-k<0或1> 重設硬碟時,保留-dmu參數的設定。
-K<0或1> 重設硬碟時,保留-APSWXZ參數的設定。
-m<磁區數> 設定硬碟多重分區存取的分區數。
-n<0或1> 忽略硬碟寫入時所發生的錯誤。
-p 設定硬碟的PIO模式。
-P<磁區數> 設定硬碟內部快取的分區數。
-q 在執行後續的參數時,不在屏幕上顯示任何信息。
-r<0或1> 設定硬碟的讀寫模式。
-S<時間> 設定硬碟進入省電模式前的等待時間。
-t 評估硬碟的讀取效率。
-T 平谷硬碟快取的讀取效率。
-u<0或1> 在硬碟存取時,允許其他中斷要求同時執行。
-v 顯示硬碟的相關設定。
-W<0或1> 設定硬碟的寫入快取。
-X<傳輸模式> 設定硬碟的傳輸模式。
-y 使IDE硬碟進入省電模式。
-Y 使IDE硬碟進入睡眠模式。
-Z 關閉某些Seagate硬碟的自動省電功能。
❾ linux怎樣提升磁碟讀寫性能
關於頁面緩存的信息,可以用
cat /proc/meminfo
看到。其中的Cached 指用於pagecache的內存大小(diskcache-SwapCache)。隨著寫入緩存頁,Dirty 的值會增加。
一旦開始把緩存頁寫入硬碟,Writeback的值會增加直到寫入結束。
Linux 用pdflush進程把數據從緩存頁寫入硬碟,查看有多少個pdflush進程
cat /proc/sys/vm/nr_pdflush_threads
pdflush的行為受/proc/sys/vm中的參數的控制
/proc/sys/vm/dirty_writeback_centisecs (default 500):
1/100秒, 多長時間喚醒pdflush將緩存頁數據寫入硬碟。默認5秒喚醒2個(更多個)線程。
如果wrteback的時間長於dirty_writeback_centisecs的時間,可能會出問題。
pdflush的第一件事是讀取
/proc/sys/vm/dirty_expire_centiseconds (default 3000)
1/100秒。緩存頁里數據的過期時間(舊數據),在下一個周期內被寫入硬碟。默認30秒是一個很長的時間。
第二件事是判斷內存是否到了要寫入硬碟的限額,由參數決定:
/proc/sys/vm/dirty_background_ratio (default 10)
百分值,保留過期頁緩存(臟頁緩存)的最大值。是以MmeFree+Cached-Mapped的值為基準的
pdflush寫入硬碟看兩個參數:
1 數據在頁緩存中是否超出30秒,如果是,標記為臟頁緩存;
2 臟頁緩存是否達到工作內存的10%;
以下參數也會影響到pdflush
/proc/sys/vm/dirty_ratio (default 40)
總內存的最大百分比,系統所能擁有的最大臟頁緩存的總量。超過這個值,開啟pdflush寫入硬碟。如果cache增長快於pdflush,那麼整個系統在40%的時候遇到I/O瓶頸,所有的I/O都要等待cache被pdflush進硬碟後才能重新開始。
對於有高度寫入操作的系統
dirty_background_ratio: 主要調整參數。如果需要把緩存持續的而不是一下子大量的寫入硬碟,降低這個值。
dirty_ratio: 第二調整參數。
Swapping參數
/proc/sys/vm/swappiness
默認,linux傾向於從物理內存映射到硬碟緩存,保持硬碟緩存盡可能大。未用的頁緩存會被放進swap區。
數值為0,將會避免使用swapping
100,將會盡量使用swapping
少用swapping會增加程序的響應速度;多用swapping將會提高系統的可用性。
如果有大量的寫操作,為避免I/O的長時間等待,可以設置:
$ echo 5 > /proc/sys/vm/dirty_background_ratio
$ echo 10 > /proc/sys/vm/dirty_ratio
文件系統數據緩沖需要頻繁的內存分配。加大保留內存的值能提升系統速度和穩定。小於8G的內存,保留內存為64M,大於8G的設置為256M
$ echo 65536 > /proc/sys/vm/min_free_kbytes
I/O 調度器
cat /sys/block/[disk]/queue/scheler
4中調度演算法
noop anticipatory deadline [cfq]
deadline : deadline 演算法保證對既定的IO請求以最小的延遲時間。
anticipatory: 有個IO發生後,如果又有進程請求IO,則產生一個默認6ms猜測時間,猜測下一個進程請求IO是干什麼。這對於隨機讀取會造成較大的延時。
對資料庫應用很糟糕,而對於Web Server等則會表現不錯。
cfq: 對每個進程維護一個IO隊列,各個進程發來的IO請求會被cfq以輪循方式處理,對每一個IO請求都是公平。適合離散讀的應用。
noop: 對所有IO請求都用FIFO隊列形式處理。默認IO不會存在性能問題。
改變調度器
$ echo deadline > /sys/block/sdX/queue/scheler
對於資料庫伺服器,deadline演算法是推薦的。
提高調度器請求隊列的
$ echo 4096 > /sys/block/sdX/queue/nr_requests
有大量的讀請求,默認的請求隊列應付不過來,可以提高這個值。缺點是要犧牲一定的內存。
為了增加連續讀取的吞吐量,可以增加預讀數據量。預讀的實際值是自適應的,所以使用一個較高的值,不會降低小型隨機存取的性能。
$ echo 4096 > /sys/block/sdX/queue/read_ahead_kb
如果LINUX判斷一個進程在順序讀取文件,那麼它會提前讀取進程所需文件的數據,放在緩存中。伺服器遇到磁碟寫活動高峰,導致請求處理延遲非常大(超過3秒)。通過調整內核參數,將寫活動的高峰分布成頻繁的多次寫,每次寫入的數據比較少。這樣可以把尖峰的寫操作削平成多次寫操作。以這種方式執行的效率比較低,因為內核不太有機會組合寫操作。但對於繁忙的伺服器,寫操作將更一致地進行,並將極大地改進互動式性能。
/proc/sys/vm/dirty_ratio
控制文件系統的寫緩沖區的大小,單位是百分比,表示占系統內存的百分比,表示當寫緩沖使用到系統內存多少的時候,開始向磁碟寫出數據。增大之會使用更多系統內存用於磁碟寫緩沖,也可以極大提高系統的寫性能。但是,當你需要持續、恆定的寫入場合時,應該降低其數值。
/proc/sys/vm/dirty_background_ratio
控制文件系統的pdflush進程,在何時刷新磁碟。單位是百分比,表示系統內存的百分比,pdflush用於將內存中的內容和文件系統進行同步,比如說,當一個文件在內存中進行修改,pdflush負責將它寫回硬碟.每當內存中的垃圾頁(dirty page)超過10%的時候,pdflush就會將這些頁面備份回硬碟.增大之會使用更多系統內存用於磁碟寫緩沖,也可以極大提高系統的寫性能。但是,當你需要持續、恆定的寫入場合時,應該降低其數值:
/proc/sys/vm/dirty_writeback_centisecs
控制內核的臟數據刷新進程pdflush的運行間隔。單位是 1/100 秒。預設數值是500,也就是 5 秒。如果你的系統是持續地寫入動作,那麼實際上還是降低這個數值比較好,這樣可以把尖峰的寫操作削平成多次寫操作。
如果你的系統是短期地尖峰式的寫操作,並且寫入數據不大(幾十M/次)且內存有比較多富裕,那麼應該增大此數值。
該參數的設置應該小於dirty_expire_centisecs,但也不能太小,太小I/O太頻繁,反而
使系統性能下降。具體可能需要在生產環境上測試。據說1:6 (dirty_expire_centisecs : dirty_writeback_centisecs )的比例比較好。
/proc/sys/vm/dirty_expire_centisecs
聲明Linux內核寫緩沖區裡面的數據多「舊」了之後,pdflush進程就開始考慮寫到磁碟中去。單位是 1/100秒。預設是 30000,也就是 30 秒的數據就算舊了,將會刷新磁碟。對於特別重載的寫操作來說,這個值適當縮小也是好的,但也不能縮小太多,因為縮小太多也會導致IO提高太快。
當然,如果你的系統內存比較大,並且寫入模式是間歇式的,並且每次寫入的數據不大(比如幾十M),那麼這個值還是大些的好。
/proc/sys/vm/vfs_cache_pressure
表示內核回收用於directory和inode cache內存的傾向;預設值100表示內核將根據pagecache和swapcache,把directory和inode cache保持在一個合理的百分比;降低該值低於100,將導致內核傾向於保留directory和inode cache;增加該值超過100,將導致內核傾向於回收directory和inode cache
/proc/sys/vm/min_free_kbytes
表示強制Linux VM最低保留多少空閑內存(Kbytes)。
預設設置:724(512M物理內存)
/proc/sys/vm/nr_pdflush_threads
表示當前正在運行的pdflush進程數量,在I/O負載高的情況下,內核會自動增加更多的pdflush進程。
/proc/sys/vm/overcommit_memory
指定了內核針對內存分配的策略,其值可以是0、1、2。
0, 表示內核將檢查是否有足夠的可用內存供應用進程使用;如果有足夠的可用內存,內存申請允許;否則,內存申請失敗,並把錯誤返回給應用進程。
1, 表示內核允許分配所有的物理內存,而不管當前的內存狀態如何。
2, 表示內核允許分配超過所有物理內存和交換空間總和的內存(參照overcommit_ratio)。
預設設置:0
/proc/sys/vm/overcommit_ratio
如果overcommit_memory=2,可以過載內存的百分比,通過以下公式來計算系統整體可用內存。系統可分配內存=交換空間+物理內存*overcommit_ratio/100
預設設置:50(%)
/proc/sys/vm/page-cluster
表示在寫一次到swap區的時候寫入的頁面數量,0表示1頁,1表示2頁,2表示4頁。
預設設置:3(2的3次方,8頁)
/proc/sys/vm/swapiness
表示系統進行交換行為的程度,數值(0-100)越高,越可能發生磁碟交換。
更改:
/etc/sysctl.conf
vm.dirty_ratio=40
sysctl -p
查看:
find /proc/sys/vm -name dirty* -print | while read name; do echo $name ;cat ${name}; done