MegaRAIDのパフォーマンスチューニング

Linux

概要

  • 以前買ったDellのサーバにディスクIOが断続的に発生しています。そのたびにSASへのdisk writeが発生してSASのディスクアクセスの音がうるさいです。iotopを見てみると、mysqldの書き込みが多いです。
  • そもそもSASには重要なデータは保存されていなく、速度優先のデータしか入っていないので安全性を犠牲にして、ディスクアクセスを効率的に行うように設定します。
  • MegaRAIDの値を調整します。コマンドの資料

設定の現状確認

root@dell /h/m/.ssh# /opt/MegaRAID/storcli/storcli64 /c0/v0 show
Controller = 0
Status = Success
Description = None


Virtual Drives :
==============

-----------------------------------------------------------
DG/VD TYPE  State Access Consist Cache sCC       Size Name
-----------------------------------------------------------
0/0   RAID5 Optl  RW     Yes     NRWTD -   836.625 GB
-----------------------------------------------------------

Cac=CacheCade|Rec=Recovery|OfLn=OffLine|Pdgd=Partially Degraded|dgrd=Degraded
Optl=Optimal|RO=Read Only|RW=Read Write|HD=Hidden|B=Blocked|Consist=Consistent|
R=Read Ahead Always|NR=No Read Ahead|WB=WriteBack|
AWB=Always WriteBack|WT=WriteThrough|C=Cached IO|D=Direct IO|sCC=Scheduled
Check Consistency

NRWTDと書かれているので、No Write Ahead, Write Through, Directのフラグが立っています。

読み書きを効率的に行うために、Write AheadとWrite Back、Cached IOに変更します。

/opt/MegaRAID/storcli/storcli64 /c0/v0 set rdcache=ra
/opt/MegaRAID/storcli/storcli64 /c0/v0 set wrcache=WT
/opt/MegaRAID/storcli/storcli64 /c0/v0 set iopolicy=cached

その結果、RWTDになりました。

root@dell /h/m/.ssh# /opt/MegaRAID/storcli/storcli64 /c0/v0 show
Controller = 0
Status = Success
Description = None


Virtual Drives :
==============

-----------------------------------------------------------
DG/VD TYPE  State Access Consist Cache sCC       Size Name
-----------------------------------------------------------
0/0   RAID5 Optl  RW     Yes     RWTC  -   836.625 GB
-----------------------------------------------------------

Cac=CacheCade|Rec=Recovery|OfLn=OffLine|Pdgd=Partially Degraded|dgrd=Degraded
Optl=Optimal|RO=Read Only|RW=Read Write|HD=Hidden|B=Blocked|Consist=Consistent|
R=Read Ahead Always|NR=No Read Ahead|WB=WriteBack|
AWB=Always WriteBack|WT=WriteThrough|C=Cached IO|D=Direct IO|sCC=Scheduled
Check Consistency

その結果、Read Ahead AlwaysWriteBackCached IOになりました。

結果

  • ディスクアクセスが効率的になりました。
  • グラフはwriteです。
mackerel disk i/o

データ保存用のディスクアレイは継続して安全な方向で運用中。

root@dell /h/m/.ssh# /opt/MegaRAID/storcli/storcli64 /c0/v1 show
Controller = 0
Status = Success
Description = None


Virtual Drives :
==============

----------------------------------------------------------
DG/VD TYPE   State Access Consist Cache sCC     Size Name
----------------------------------------------------------
1/1   RAID10 Optl  RW     Yes     NRWTD -   3.637 TB
----------------------------------------------------------

Cac=CacheCade|Rec=Recovery|OfLn=OffLine|Pdgd=Partially Degraded|dgrd=Degraded
Optl=Optimal|RO=Read Only|RW=Read Write|HD=Hidden|B=Blocked|Consist=Consistent|
R=Read Ahead Always|NR=No Read Ahead|WB=WriteBack|
AWB=Always WriteBack|WT=WriteThrough|C=Cached IO|D=Direct IO|sCC=Scheduled
Check Consistency

考察

そもそも、定常的に書き込みが多すぎる。。。iotopではプロセス名しかでなくてどのコンテナのプロセスかがわからない。。。

docker statsでみてみるととあるプロセスのBLOCK I/Oが多いので、書き込みをなくすようにプログラム側を変更して対処して更に一段とディスクIOを減らしました。

docker stats
mackerel disk i/o

コメント