Hiệu suất RAID đột ngột chậm


16

Gần đây chúng tôi nhận thấy các truy vấn cơ sở dữ liệu của chúng tôi đã mất nhiều thời gian hơn bình thường để chạy. Sau một số điều tra, có vẻ như chúng ta đang đọc đĩa rất chậm.

Chúng ta đã gặp phải một vấn đề tương tự trong quá khứ do bộ điều khiển RAID khởi tạo chu trình học lại trên BBU và chuyển sang ghi qua. Lần này không giống như trường hợp này.

Tôi đã chạy bonnie++một vài lần trong suốt một vài ngày. Đây là kết quả:

đầu ra của bonnie ++

22-82 M / s đọc có vẻ khá kinh khủng. Chạy ddvới thiết bị thô trong vài phút sẽ hiển thị ở mọi nơi từ 15,8 MB / s đến 225 MB / s đọc (xem cập nhật bên dưới). iotopkhông chỉ ra bất kỳ quá trình nào khác cạnh tranh cho IO vì vậy tôi không chắc tại sao tốc độ đọc lại thay đổi như vậy.

Thẻ đột kích là MegaRAID SAS 9280 với 12 ổ đĩa SAS (15k, 300GB) trong RAID10 với hệ thống tệp XFS (HĐH trên hai ổ SSD được cấu hình trong RAID1). Tôi không thấy bất kỳ cảnh báo SMART nào và mảng dường như không bị suy giảm.

Tôi cũng đã chạy xfs_checkvà dường như không có bất kỳ vấn đề nhất quán XFS nào.

Những bước điều tra tiếp theo ở đây là gì?

Thông số kỹ thuật máy chủ

Ubuntu 12.04.5 LTS
128GB RAM
Intel(R) Xeon(R) CPU E5-2643 0 @ 3.30GHz

Đầu ra của xfs_repair -n:

Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan (but don't clear) agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 1
        - agno = 3
        - agno = 2
        - agno = 0
No modify flag set, skipping phase 5
Phase 6 - check inode connectivity...
        - traversing filesystem ...
        - traversal finished ...
        - moving disconnected inodes to lost+found ...
Phase 7 - verify link counts...
No modify flag set, skipping filesystem flush and exiting.

Đầu ra của megacli -AdpAllInfo -aAll:

                    Versions
                ================
Product Name    : LSI MegaRAID SAS 9280-4i4e
Serial No       : SV24919344
FW Package Build: 12.12.0-0124

                    Mfg. Data
                ================
Mfg. Date       : 12/06/12
Rework Date     : 00/00/00
Revision No     : 04B
Battery FRU     : N/A

                Image Versions in Flash:
                ================
FW Version         : 2.130.363-1846
BIOS Version       : 3.25.00_4.12.05.00_0x05180000
Preboot CLI Version: 04.04-020:#%00009
WebBIOS Version    : 6.0-51-e_47-Rel
NVDATA Version     : 2.09.03-0039
Boot Block Version : 2.02.00.00-0000
BOOT Version       : 09.250.01.219

                Pending Images in Flash
                ================
None

                PCI Info
                ================
Controller Id   : 0000
Vendor Id       : 1000
Device Id       : 0079
SubVendorId     : 1000
SubDeviceId     : 9282

Host Interface  : PCIE

ChipRevision    : B4

Link Speed       : 0
Number of Frontend Port: 0
Device Interface  : PCIE

Number of Backend Port: 8
Port  :  Address
0        5003048001c1e47f
1        0000000000000000
2        0000000000000000
3        0000000000000000
4        0000000000000000
5        0000000000000000
6        0000000000000000
7        0000000000000000

                HW Configuration
                ================
SAS Address      : 500605b005a6cbc0
BBU              : Present
Alarm            : Present
NVRAM            : Present
Serial Debugger  : Present
Memory           : Present
Flash            : Present
Memory Size      : 512MB
TPM              : Absent
On board Expander: Absent
Upgrade Key      : Absent
Temperature sensor for ROC    : Absent
Temperature sensor for controller    : Absent


                Settings
                ================
Current Time                     : 14:58:51 7/11, 2016
Predictive Fail Poll Interval    : 300sec
Interrupt Throttle Active Count  : 16
Interrupt Throttle Completion    : 50us
Rebuild Rate                     : 30%
PR Rate                          : 30%
BGI Rate                         : 30%
Check Consistency Rate           : 30%
Reconstruction Rate              : 30%
Cache Flush Interval             : 4s
Max Drives to Spinup at One Time : 4
Delay Among Spinup Groups        : 2s
Physical Drive Coercion Mode     : Disabled
Cluster Mode                     : Disabled
Alarm                            : Enabled
Auto Rebuild                     : Enabled
Battery Warning                  : Enabled
Ecc Bucket Size                  : 15
Ecc Bucket Leak Rate             : 1440 Minutes
Restore HotSpare on Insertion    : Disabled
Expose Enclosure Devices         : Enabled
Maintain PD Fail History         : Enabled
Host Request Reordering          : Enabled
Auto Detect BackPlane Enabled    : SGPIO/i2c SEP
Load Balance Mode                : Auto
Use FDE Only                     : No
Security Key Assigned            : No
Security Key Failed              : No
Security Key Not Backedup        : No
Default LD PowerSave Policy      : Controller Defined
Maximum number of direct attached drives to spin up in 1 min : 120
Auto Enhanced Import             : No
Any Offline VD Cache Preserved   : No
Allow Boot with Preserved Cache  : No
Disable Online Controller Reset  : No
PFK in NVRAM                     : No
Use disk activity for locate     : No
POST delay           : 90 seconds
BIOS Error Handling              : Stop On Errors
Current Boot Mode         :Normal
                Capabilities
                ================
RAID Level Supported             : RAID0, RAID1, RAID5, RAID6, RAID00, RAID10, RAID50, RAID60, PRL 11, PRL 11 with spanning, SRL 3 supported, PRL11-RLQ0 DDF layout with no span, PRL11-RLQ0 DDF layout with span
Supported Drives                 : SAS, SATA

Allowed Mixing:

Mix in Enclosure Allowed
Mix of SAS/SATA of HDD type in VD Allowed

                Status
                ================
ECC Bucket Count                 : 0

                Limitations
                ================
Max Arms Per VD          : 32
Max Spans Per VD         : 8
Max Arrays               : 128
Max Number of VDs        : 64
Max Parallel Commands    : 1008
Max SGE Count            : 80
Max Data Transfer Size   : 8192 sectors
Max Strips PerIO         : 42
Max LD per array         : 16
Min Strip Size           : 8 KB
Max Strip Size           : 1.0 MB
Max Configurable CacheCade Size: 0 GB
Current Size of CacheCade      : 0 GB
Current Size of FW Cache       : 350 MB

                Device Present
                ================
Virtual Drives    : 2
  Degraded        : 0
  Offline         : 0
Physical Devices  : 16
  Disks           : 14
  Critical Disks  : 0
  Failed Disks    : 0

                Supported Adapter Operations
                ================
Rebuild Rate                    : Yes
CC Rate                         : Yes
BGI Rate                        : Yes
Reconstruct Rate                : Yes
Patrol Read Rate                : Yes
Alarm Control                   : Yes
Cluster Support                 : No
BBU                             : Yes
Spanning                        : Yes
Dedicated Hot Spare             : Yes
Revertible Hot Spares           : Yes
Foreign Config Import           : Yes
Self Diagnostic                 : Yes
Allow Mixed Redundancy on Array : No
Global Hot Spares               : Yes
Deny SCSI Passthrough           : No
Deny SMP Passthrough            : No
Deny STP Passthrough            : No
Support Security                : No
Snapshot Enabled                : No
Support the OCE without adding drives : Yes
Support PFK                     : Yes
Support PI                      : No
Support Boot Time PFK Change    : No
Disable Online PFK Change       : No
PFK TrailTime Remaining         : 0 days 0 hours
Support Shield State            : No
Block SSD Write Disk Cache Change: No

                Supported VD Operations
                ================
Read Policy          : Yes
Write Policy         : Yes
IO Policy            : Yes
Access Policy        : Yes
Disk Cache Policy    : Yes
Reconstruction       : Yes
Deny Locate          : No
Deny CC              : No
Allow Ctrl Encryption: No
Enable LDBBM         : No
Support Breakmirror  : No
Power Savings        : No

                Supported PD Operations
                ================
Force Online                            : Yes
Force Offline                           : Yes
Force Rebuild                           : Yes
Deny Force Failed                       : No
Deny Force Good/Bad                     : No
Deny Missing Replace                    : No
Deny Clear                              : No
Deny Locate                             : No
Support Temperature                     : Yes
NCQ                                     : No
Disable Copyback                        : No
Enable JBOD                             : No
Enable Copyback on SMART                : No
Enable Copyback to SSD on SMART Error   : Yes
Enable SSD Patrol Read                  : No
PR Correct Unconfigured Areas           : Yes
Enable Spin Down of UnConfigured Drives : Yes
Disable Spin Down of hot spares         : No
Spin Down time                          : 30
T10 Power State                         : No
                Error Counters
                ================
Memory Correctable Errors   : 0
Memory Uncorrectable Errors : 0

                Cluster Information
                ================
Cluster Permitted     : No
Cluster Active        : No

                Default Settings
                ================
Phy Polarity                     : 0
Phy PolaritySplit                : 0
Background Rate                  : 30
Strip Size                       : 256kB
Flush Time                       : 4 seconds
Write Policy                     : WB
Read Policy                      : Adaptive
Cache When BBU Bad               : Disabled
Cached IO                        : No
SMART Mode                       : Mode 6
Alarm Disable                    : Yes
Coercion Mode                    : None
ZCR Config                       : Unknown
Dirty LED Shows Drive Activity   : No
BIOS Continue on Error           : 0
Spin Down Mode                   : None
Allowed Device Type              : SAS/SATA Mix
Allow Mix in Enclosure           : Yes
Allow HDD SAS/SATA Mix in VD     : Yes
Allow SSD SAS/SATA Mix in VD     : No
Allow HDD/SSD Mix in VD          : No
Allow SATA in Cluster            : No
Max Chained Enclosures           : 16
Disable Ctrl-R                   : Yes
Enable Web BIOS                  : Yes
Direct PD Mapping                : No
BIOS Enumerate VDs               : Yes
Restore Hot Spare on Insertion   : No
Expose Enclosure Devices         : Yes
Maintain PD Fail History         : Yes
Disable Puncturing               : No
Zero Based Enclosure Enumeration : No
PreBoot CLI Enabled              : Yes
LED Show Drive Activity          : Yes
Cluster Disable                  : Yes
SAS Disable                      : No
Auto Detect BackPlane Enable     : SGPIO/i2c SEP
Use FDE Only                     : No
Enable Led Header                : No
Delay during POST                : 0
EnableCrashDump                  : No
Disable Online Controller Reset  : No
EnableLDBBM                      : No
Un-Certified Hard Disk Drives    : Allow
Treat Single span R1E as R10     : No
Max LD per array                 : 16
Power Saving option              : Don't Auto spin down Configured Drives
Max power savings option is  not allowed for LDs. Only T10 power conditions are to be used.
Default spin down time in minutes: 30
Enable JBOD                      : No
TTY Log In Flash                 : No
Auto Enhanced Import             : No
BreakMirror RAID Support         : No
Disable Join Mirror              : No
Enable Shield State              : No
Time taken to detect CME         : 60s

Đầu ra của megacli -AdpBbuCmd -GetBbuSTatus -aAll:

BBU status for Adapter: 0

BatteryType: iBBU
Voltage: 4068 mV
Current: 0 mA
Temperature: 30 C
Battery State: Optimal
BBU Firmware Status:

  Charging Status              : Charging
  Voltage                                 : OK
  Temperature                             : OK
  Learn Cycle Requested                   : No
  Learn Cycle Active                      : No
  Learn Cycle Status                      : OK
  Learn Cycle Timeout                     : No
  I2c Errors Detected                     : No
  Battery Pack Missing                    : No
  Battery Replacement required            : No
  Remaining Capacity Low                  : No
  Periodic Learn Required                 : No
  Transparent Learn                       : No
  No space to cache offload               : No
  Pack is about to fail & should be replaced : No
  Cache Offload premium feature required  : No
  Module microcode update required        : No


GasGuageStatus:
  Fully Discharged        : No
  Fully Charged           : No
  Discharging             : Yes
  Initialized             : Yes
  Remaining Time Alarm    : No
  Discharge Terminated    : No
  Over Temperature        : No
  Charging Terminated     : No
  Over Charged            : No
  Relative State of Charge: 88 %
  Charger System State: 49169
  Charger System Ctrl: 0
  Charging current: 512 mA
  Absolute state of charge: 87 %
  Max Error: 4 %

Exit Code: 0x00

Đầu ra của megacli -LDInfo -Lall -aAll:

Adapter 0 -- Virtual Drive Information:
Virtual Drive: 0 (Target Id: 0)
Name                :
RAID Level          : Primary-1, Secondary-0, RAID Level Qualifier-0
Size                : 111.281 GB
Sector Size         : 512
Mirror Data         : 111.281 GB
State               : Optimal
Strip Size          : 256 KB
Number Of Drives    : 2
Span Depth          : 1
Default Cache Policy: WriteBack, ReadAhead, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteBack, ReadAhead, Direct, No Write Cache if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy   : Disk's Default
Encryption Type     : None
Is VD Cached: No


Virtual Drive: 1 (Target Id: 1)
Name                :
RAID Level          : Primary-1, Secondary-0, RAID Level Qualifier-0
Size                : 1.633 TB
Sector Size         : 512
Mirror Data         : 1.633 TB
State               : Optimal
Strip Size          : 256 KB
Number Of Drives per span:2
Span Depth          : 6
Default Cache Policy: WriteBack, ReadAhead, Direct, Write Cache OK if Bad BBU
Current Cache Policy: WriteBack, ReadAhead, Direct, Write Cache OK if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy   : Disk's Default
Encryption Type     : None
Is VD Cached: No

Cập nhật: Theo lời khuyên của Andrew, tôi đã chạy ddtrong vài phút để xem loại thông lượng nào tôi nhận được trên đĩa thô:

dd if=/dev/sdb of=/dev/null bs=256k
19701+0 records in
19700+0 records out
5164236800 bytes (5.2 GB) copied, 202.553 s, 25.5 MB/s

Kết quả của các lần chạy khác, với thông lượng rất thay đổi:

18706857984 bytes (19 GB) copied, 1181.51 s, 15.8 MB/s
20923023360 bytes (21 GB) copied, 388.137 s, 53.9 MB/s
21205876736 bytes (21 GB) copied, 55.5997 s, 381 MB/s
25391005696 bytes (25 GB) copied, 153.903 s, 165 MB/s

Cập nhật 2: Đầu ra của megacli -PDlist -aall: https://gist.github.com/danpelota/3fca1e5f90a1f58c2d52a49bfb08ef0


3
Hãy thử đọc trực tiếp từ thiết bị đĩa. Một cái gì đó thích dd if=/dev/sdb of=/dev/null bs=256kvà xem những gì băng thông bạn nhận được. Chỉ cần đảm bảo rằng bạn không ghi vào thiết bị đĩa trừ khi bạn muốn khôi phục (các) hệ thống tệp của mình từ bản sao lưu ...
Andrew Henle

2
@Dan, tôi đã xem chi tiết ở megacli -PDlist -aallđầu ra và tôi không thấy có gì sai rõ ràng ở đó, smartctl -a -d sat+megaraid,10 /dev/sdbchỉ là một ví dụ, kiểm tra bộ đếm SMART đáng để IMHO, cảnh báo SMART hiếm khi hoạt động với tôi, trước tiên hãy tìm cài đặt mô-đun chính xác cho ổ đĩa của bạn bằng cách sử dụng smartctl --scan, sau đó thay thế một phần sat+megaraid,21nghỉ /dev/sdahoang sơ, nó không nên thay đổi bất cứ điều gì anyway. Tôi đã sử dụng theo cách đó ServeRAID M5015 SAS/SATA Controller, nó trông giống như sh * t mặc dù. Dưới đây là một ví dụ: pastebin.com/WYb8Utxr
Michal Sokolowski

9
@Dan, đối với tôi hành vi như vậy vẫn bao gồm (các) đĩa "tiền xử lý". Có thể một số đĩa hầu như luôn phục hồi các lần đọc của bạn làm chậm toàn bộ quá trình. Số liệu thống kê SMART là rất quan trọng để phê duyệt / từ chối lý thuyết của tôi. Một lần nữa, đối với tôi, bộ đếm megaraid là vô giá trị, nó đã không thay đổi cho đến khi đĩa hoàn toàn chết (trạng thái khi nó không bắt đầu), tôi đã sử dụng các SAS tương tự về mặt nhà cung cấp và kích thước.
Michal Sokolowski

2
@MichalSokolowski: Có ý nghĩa. Có số thiết bị chính xác và chạy smartctltrên các đĩa riêng lẻ. Có vẻ như số lỗi không trung bình là rất lớn đối với đĩa 18: gist.github.com/danpelota/83b54854aa5af2e351ed71af5c8ebbf5
danpelota

1
Vui mừng bạn đóng đinh nó. Xin vui lòng làm điều đó. Tôi sẽ bình chọn nó lên nào. Tăng danh tiếng chỉ là tác dụng phụ. Hãy nhớ để trả lời câu hỏi. Bạn đã làm hầu hết các công việc. :) Tôi đã đọc số liệu thống kê SMART của bạn, nhưng ở dạng hiện tại chúng cũng vô dụng. Tôi muốn xem quầy SMART thực tế. Thật kỳ lạ, bạn smartctlkhông thể hiện nó giống như của tôi. Có câu trả lời thực sự chắc chắn.
Michal Sokolowski

Câu trả lời:


5

Như Michal đã chỉ ra trong bình luận của mình , vấn đề là một đĩa "mở đầu". Không có cờ đỏ trong chẩn đoán từ bộ điều khiển megaraid và smartctl SMART Health Status:OK, nhưng chạy smartctltrên mỗi đĩa cho thấy số lỗi không trung bình rất lớn (tôi đã viết một tập lệnh bash nhanh để lặp qua từng ID đĩa). Đây là các bit có liên quan từ đầu ra đầy đủ :

# Ran this for each individual disk on the /dev/sdb array:
smartctl -a -d megaraid,18  /dev/sdb

Error counter log:
           Errors Corrected by           Total   Correction     Gigabytes    Total
               ECC          rereads/    errors   algorithm      processed    uncorrected
           fast | delayed   rewrites  corrected  invocations   [10^9 bytes]  errors
read:    7950078        0         0   7950078    7950078        660.801           0
write:         0        0         0         0          0        363.247           0
verify:       12        0         0        12         12          0.002           0

Non-medium error count:  3253718

Mỗi ổ đĩa khác cho thấy số lỗi không trung bình là 0, ngoại trừ ổ đĩa này (ID đĩa 18). Tôi đã xác định đĩa, hoán đổi nó với một cái mới và quay trở lại để nhận được 3gbps đọc.

Theo wiki thông minh :

Các nhật ký lỗi được hiển thị (nếu có) được hiển thị trên các dòng riêng biệt:

  • ghi lỗi

  • đọc lỗi quầy

  • xác minh bộ đếm lỗi (chỉ hiển thị nếu khác không)

  • bộ đếm lỗi không trung bình (chỉ hiển thị một số duy nhất). Điều này thể hiện số lượng các sự kiện có thể phục hồi khác hơn là viết, đọc hoặc xác minh lỗi.

  • các sự kiện lỗi được tổ chức trong trang nhật ký "Sự kiện lỗi cuối cùng". Số lượng các bản ghi sự kiện lỗi được giữ (ví dụ "n") là cụ thể của nhà cung cấp (ví dụ: có tới 23 bản ghi được lưu cho các đĩa kiểu máy Hitachi 10K300). Nội dung của mỗi bản ghi sự kiện lỗi là ở ASCII và nhà cung cấp cụ thể. Mã tham số được liên kết với mỗi bản ghi sự kiện lỗi cho biết thời gian xảy ra sự kiện lỗi. Mã tham số cao hơn cho biết rằng sự kiện lỗi xảy ra sau đó theo thời gian. Nếu trang nhật ký này không được thiết bị hỗ trợ thì "Lỗi ghi nhật ký sự kiện không được hỗ trợ" là đầu ra. Nếu trang nhật ký này được hỗ trợ và có các bản ghi sự kiện lỗi thì mỗi bản ghi được tiền tố bởi "Sự kiện lỗi:" trong đó là mã tham số.


Tôi đã nhấn nó một lần nữa, vì vậy tôi sẽ ghi chú trong câu trả lời của bạn nếu bạn không phiền.
Michal Sokolowski

0

Bạn cần xác minh sự phân mảnh của ổ đĩa của bạn:

xfs_db -r /dev/sdbx
frag

Bạn sẽ có câu trả lời như thế này:

actual 347954, ideal 15723, fragmentation factor 95.48%

Nếu hệ số phân mảnh của bạn cao, bạn sẽ cần chống phân mảnh đĩa của mình. (vâng tôi biết, như trên Windows ...): /

Để chống phân mảnh đĩa của bạn: xfs_fsr -v /dev/sdbx


0

Với LSI, có một vài điều thực sự quan trọng.

1) Flash firmware RAID. Bạn là một vài lượt tắt hiện tại.

2) Flash chương trình cơ sở trên các ổ đĩa và đảm bảo rằng nó cũng cập nhật.

3) Cập nhật trình điều khiển của bạn. Dựa trên các ghi chú phát hành trên trang web của LSI, họ vừa phát hành một trình điều khiển mới vào cuối tháng 1.

Sau đó, bạn có thể chạy lại các bài kiểm tra của mình để xem có sự thay đổi nào không.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.