Linux

Centos 6 磁碟速度極慢

  • October 13, 2016

設置如下所示:

  • HP Proliant DL380 G7
  • 6 個 3TB SATA 驅動器(監控級別),配置有硬體 RAID 1+0,板載 SATA 控制器。型號為希捷 SV35
  • 192GB 記憶體

VMware ESXi 6.0

  • 一台執行 Centos 6.7(核心 2.6.32-573)的 VM 來賓

數據儲存由 ESXi 安裝後的所有剩餘磁碟空間組成(略小於 8tb)

  • 1 個 VMDK 文件,用於 100GB 的系統分區
  • 1 個用於數據分區的 VMDK 文件,大小約為 7.7TB

在來賓 CentOS 上,系統分區是 LVM ext4

數據分區是具有單個 PV、LV 和 VG ext4 的 LVM

現在我遇到的問題是磁碟上的數據傳輸速度非常慢。嘗試將半大文件(10-30 GB)從 LVM 上的一個位置複製到 LVM 上的另一個位置,傳輸速率大約為 240MB/s,這是我期望的速度,但只是幾秒鐘後(通常為 30 左右),它下降到 1-4 MB/s,查看 iotop 告訴我一個名為 flush-253:2 的程序開始執行,這似乎減慢了一切。

我一直在使用 rsync –progress 來更好地實時了解傳輸速度,但我在 cp 操作中看到了相同的結果。

當它最終完成時,我嘗試再次執行相同的過程,將相同的文件放在相同的位置。第二次 rsync 指示的傳輸速度在整個傳輸過程中保持穩定在 240MB/s 左右,但是當 rsync 指示文件傳輸完成時,它會在該狀態下掛起大約與完成第一個複製過程所需的時間一樣長。我可以看到 flush-253:2 程序對這兩個程序都一樣努力。

現在我知道設置不是最佳的,我寧願為 ESXi 系統設置一個單獨的磁碟,但我不認為這應該是導致傳輸速度極慢的原因。

我搜尋了有關刷新過程的資訊,據我所知,它基本上將數據從記憶體寫入實際磁碟,但我沒有發現有人說他們經歷過這種緩慢的傳輸速率. 該系統尚未投入生產,CPU 幾乎根本沒有執行,並且當複製程序執行時,它有大約 100GB 的可用記憶體可供使用。

有誰知道要嘗試什麼?我在不同的系統上看到了類似的結果,該系統基本上以相同的方式設置,除了完全不同(稍微小一些)的硬體。我還有第三個在 LVM 上執行 CentOS 5 和 ext3 的系統,它沒有這樣的問題。

編輯1: 我意識到現在記錯了,系統分區也是lvm,但仍然是與數據分區分開的捲

[root@server /]# mount
/dev/mapper/vg1-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/vg1-lv_home on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/vg_8tb-lv_8tb on /datavolume type ext4 (rw,nobarrier)


[root@server /]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_1-lv_root<br>
                      50G  9.7G   37G  21% /
tmpfs                  91G     0   91G   0% /dev/shm
/dev/sda1             477M   52M  400M  12% /boot
/dev/mapper/vg_1-lv_home
                      45G   52M   43G   1% /home
/dev/mapper/vg_8tb-lv_8tb
                     7.9T  439G  7.1T   6% /datavolume

**更新 1:**我嘗試將dirty_ratio 一直增加到 90,但仍然沒有看到任何改進。我還嘗試使用 -o nobarriers 安裝它,結果仍然相同

更新 2: 對於所有試圖幫助我解決混淆的人,我很抱歉,現在我自己看過了,硬體實際上是 HP Proliant 380 G7,我不知道這是否有什麼不同。

我也看過raid配置,似乎我們使用的是P410 raid控制器,當我啟動raid管理時,它說

HP Smart array (I think) P410 "SOMETHING", with 0MB in parenthesis

我猜這可能意味著我們有 0MB 的寫入記憶體?

說到硬體,我在這裡有點不了解,如果還沒有一個寫入記憶體模組(?)到這個 RAID 控制器,你可以添加一個嗎?或者您是否需要新的控制器/遷移到 SAN?我怎麼知道它是否有寫記憶體,但電池可能沒電了?

更新 3: 感謝您的建議和一些進一步的研究,我現在將嘗試在 ESXi 中安裝 HP 智能陣列驅動程序 vib 文件,並希望能更清楚地了解我所擁有的。我還在系統 BIOS 中找到了啟用驅動器記憶體的選項,所以我可能有最後的手段,以防我們在控制器上沒有寫記憶體。

更新 4(已解決): 感謝所有提出解決方案的人,是的,事實證明磁碟控制器上沒有記憶體模組。

對於遇到類似問題的任何人,我為 ESXi 安裝了 hpssacli 實用程序 VIB,並且可以通過以下輸出確認回復中的建議。

記憶體板存在:錯誤

Smart Array P410i in Slot 0 (Embedded)
Bus Interface: PCI
Slot: 0
Serial Number: 
Controller Status: OK
Hardware Revision: C
Firmware Version: 6.62
Rebuild Priority: Medium
Surface Scan Delay: 15 secs
Surface Scan Mode: Idle
Parallel Surface Scan Supported: No
Wait for Cache Room: Disabled
Surface Analysis Inconsistency Notification: Disabled
Post Prompt Timeout: 0 secs
Cache Board Present: False
Drive Write Cache: Disabled
Total Cache Size: 0 MB
SATA NCQ Supported: True
Number of Ports: 2 Internal only
Driver Name: HP HPSA
Driver Version: 5.5.0
PCI Address (Domain:Bus:Device.Function): 0000:05:00.0
Host Serial Number: 
Sanitize Erase Supported: False
Primary Boot Volume: logicaldrive 1
Secondary Boot Volume: None

它看起來好像沒有任何寫記憶體。

請確認您的伺服器的世代和型號。如果您的磁碟所連接的控制器上沒有快閃記憶體支持的寫入記憶體模組 (FBWC),那麼您的 VMware 性能將會受到影響。

這裡的另一個問題是 LVM 和幾年前出現在 RHEL6 中的一些預設設置。你會想通過禁用寫屏障來嘗試這個。LVM 可能是一個問題,因為它會導致人們避免對他們的捲進行分區……這會影響工具tuned-adm的工作能力。

我要求輸出mount. 你能發一下嗎?

嘗試使用no barrier標誌安裝卷。寫屏障是 ext4 上 EL6 的預設設置,因此這是您遇到的最大問題。

引用自:https://serverfault.com/questions/738586