543 文字
3 分
MegaRAIDのパフォーマンスチューニング
2020-10-06

概要#

  • 以前買った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に変更します。

Terminal window
/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

MegaRAIDのパフォーマンスチューニング
https://blog.teraren.com/posts/megaraid-parameter-set/
作者
Yuki Matsukura
公開日
2020-10-06
ライセンス
CC BY-NC-SA 4.0

コメント