インフラに関するお勉強メモ「ライトバックキャッシュ」
障害対応でその筋で有名なものとして、DBのパフォーマンスがいきなり劇落ちするというものがある。原因はRAIDコントローラーの定期自主検査の中でライトバックキャッシュが勝手に無効になることなんだけど、この手の障害は経験者がいないとなかなか気づけず大変つらいと思う。
— sanonosa(インフラエンジニア) (@sanonosa) 2017年9月19日
というツイートを読んで、半分も理解できなかったので調べた内容のメモ。
各単語の意味
- 「RAIDコントローラー」
複数台のストレージを一台の大きなストレージのように束ねて運用するディスクアレイ / RAIDシステムを用いて、ディスクやデータの管理を行う装置のこと。(らしい)
- 「ライトバックキャッシュ」
CPUがメインメモリ(RAM)にデータを書き込む前に、一旦キャッシュメモリ(or 上位のキャッシュ)に書き込んどいて、キャッシュから追い出しが必要になったときにメモリへ書き込む方式のこと。ついになる言葉として、「ライトスルーキャッシュ」がある。
ライトバックキャッシュが無効に
なるとどうなるか。つまりライトスルーキャッシュ方式になるので、毎回キャッシュにもDBにも(マシンならHDD)書き込みにいってしまう。 そりゃ遅くなりますわな。SSDへの書き込みだとしても、キャッシュには勝てない。
なるほど。勉強になりました。
余談
ちなみに、マシンのバッテリーが無くなる or 残量が少なくなると、自動でライトスルーキャッシュに切り替わるそうな。 さらにライトバックキャッシュ方式だと、停電やマシンの故障などによるイレギュラーな事故が発生すると、データそのものが消える可能性もある。怖い。