概要
- 以前買った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 Always、WriteBack、Cached IOになりました。
結果
- ディスクアクセスが効率的になりました。
- グラフはwriteです。
データ保存用のディスクアレイは継続して安全な方向で運用中。
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を減らしました。
Comments