Nous avons récemment remarqué que nos requêtes de base de données ont pris beaucoup plus de temps que d'habitude pour courir. Après une enquête, il semble que nous obtenons des lectures de disque très lent.
Nous avons rencontré un problème similaire dans le passé causé par le contrôleur RAID initiant un Cycle de Remet sur le BBU et basculant sur l'écriture. Cela ne ressemble pas à ceci est le cas cette fois-ci.
L'Iran bonnie++
Quelques fois au cours de quelques jours. Voici les résultats:
Les 22-82 m/s lit apparaissent assez abâtrés. Exécution dd
sur le dispositif brut pendant quelques minutes montre de 15,8 MB/S à 225 MB/s (voir la mise à jour ci-dessous). iotop
_ n'indique aucun autre processus en concurrence IO Donc, je ne sais pas pourquoi la vitesse de lecture est si variable.
La carte RAID est un MegaRAID SAS 9280 avec 12 SAS (15K, 300 Go) dans RAID10 avec un système de fichiers XFS (OS sur deux SSD configurés dans RAID1) . Je ne vois aucun fichier S.M.A.R.T. Alertes et le tableau ne semblent pas être dégradés.
J'ai aussi couru xfs_check
Et il ne semble pas y avoir de problèmes de cohérence XFS.
Quelles devraient être les prochaines étapes d'enquête ici?
Ubuntu 12.04.5 LTS
128GB RAM
Intel(R) Xeon(R) CPU E5-2643 0 @ 3.30GHz
Sortie de 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.
Sortie de 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
Sortie de 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
Sortie de 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
Mise à jour: par l'avis de Andrew, j'ai couru dd
_ pendant quelques minutes pour voir quel type de débit contiendrais sur des lectures de disque brut :
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
Résultats d'autres exécutions, avec un débit hautement variable:
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
Mise à jour 2: Sortie de megacli -PDlist -aall
: https://gist.github.com/danpelota/3fca1e5f90a1f358c2d52a49bfb08ef
Comme Michal l'a souligné dans son commentaire , la question était un disque "préféré". Il n'y avait pas de drapeaux rouges dans les diagnostics du contrôleur de Megaaid et de SmartCtl's SMART Health Status:
était OK
, mais en cours d'exécution smartctl
sur chaque disque a révélé un énorme nombre d'erreurs non-moyen (J'ai écrit un script de bash rapide pour boucler chaque disque IDENTIFIANT). Voici les bits pertinents de la Sortie complète :
# 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
Tous les autres lecteurs ont montré un nombre d'erreurs non moyen de 0, à l'exception de celui-ci (ID de disque 18). J'ai identifié le disque, l'enlève avec un nouveau et je suis de retour pour obtenir des lectures de 3Gbps.
Selon - SmartMontools Wiki :
Les journaux d'erreur affichés (si disponibles) sont affichés sur des lignes distinctes:
écrire des compteurs d'erreur
lire des compteurs d'erreur
vérifier les compteurs d'erreur (uniquement affiché si non-zéro)
compteur d'erreur non moyenne (seulement un seul numéro affiché). Cela représente le nombre d'événements récupérables autres que les erreurs d'écriture, de lecture ou de vérification.
les événements d'erreur sont détenus dans la page de journal "Dernier N eRor Error Events". Le nombre d'enregistrements d'événement d'erreur détenus (I.E. "N") est spécifique au fournisseur (par exemple, 23 enregistrements sont conservés pour les disques de modèle HITACHI 10K300). Le contenu de chaque enregistrement d'événement d'erreur est dans ASCII et spécifique au fournisseur. Le code de paramètre associé à chaque enregistrement d'événement d'erreur indique l'heure relative à laquelle l'événement d'erreur est survenu. Un code de paramètre supérieur indique que le L'événement d'erreur s'est produit plus tard dans le temps. Si cette page de journal n'est pas prise en charge par l'appareil, "Error Events Logging non pris en charge" est sortie. Si cette page de journal est prise en charge et qu'il y a des enregistrements d'événement d'erreur, chacun est préfixé par "Evénement d'erreur:" "Où est le code de paramètre.
Avec les LSI, il y a quelques points qui sont vraiment importants.
1) Flash le micrologiciel du raid. Vous êtes quelques-uns à jour en cours.
2) Flasouillez le micrologiciel sur les lecteurs et assurez-vous que sa mise à jour est également mise à jour.
3) Mettez à jour votre pilote. Sur la base des notes de publication sur le site Web de LSI, ils ont simplement publié un nouveau conducteur à la fin de janvier.
Ensuite, vous pouvez réexécuter vos tests pour voir s'il y a un changement.
Vous devez vérifier la fragmentation de votre lecteur:
xfs_db -r /dev/sdbx
frag
Vous aurez une réponse comme celle-ci:
actual 347954, ideal 15723, fragmentation factor 95.48%
Si votre facteur de fragmentation est élevé, vous devrez défrasser votre disque. (Oui je sais, comme sur Windows ...): /
Défragmenter votre disque: xfs_fsr -v /dev/sdbx