マイナンバーの中継サーバー、問題起こしてますよね!
システムが危機に直面! 障害1カ月連続発生 追加サーバーも欠陥、原因不明
http://www.sankei.com/politics/news/160301/plt1603010039-n1.html
現象は
・なぜか、2号機はスローダウンする?
→「2号機」と明確に言っているので、クラウドではないと推測できる
・再起動すれば、直る
今回は、この現象から考えられることと、
なぜ、クラウドを採用しないのかについて考えてみる
■現象から考えられる原因
スローダウンして再起動すると直る原因というのは、いくつか考えられる。
すぐ考え付く主原因は3つ
・通信エラーないし、通信上の問題
・メモリ上の問題
・なにかがファイル・DBをつかんでいる
以下、それぞれのケースを考えてみる
■通信エラーないし、通信上の問題
2つの同期しているプロセスがあり、微妙に誤差が有るとき、
誤差が蓄積して、同期がずれると、それ以降エラーになる。
この場合、再起動しないと直らない。
ただ、この場合はスローダウンするというよりか、急になる。
スローダウンするケースは、ある程度の通信エラーが起きるときだが、
この場合は、だんだんエラーが増えてきて、いつかは耐えられなくなり
障害が発生するケース。
このとき、再起動したら、エラーになっていたものをクリアする場合は
再起動すれば直る。
ただし、このケースは、エラーが起こった時点でログを書かせていると
思うので、原因追求はしやすいはず
■メモリ上の問題
メモリリークがどこかで起きていると、重くなって、最終的に
破綻する。再起動すれば直るが、再起動する前にリスタート
してしまうこともある
Javaなどの場合、ガベージコレクションが起こる。
とくに、フルガベージコレクションが起こる場合は、一時的に
処理がとまるので、このときに、キューが滞ったり、通信が滞ったりする。
これが何回も起こると、スローダウンする。
再起動することによりメモリがクリアされるので、
当分ガベージコレクションが起こらないで、正常に処理できる
ただし、このケースは、エラーが起こった時点でログを書かせていると
思うので、原因追求はしやすいはず
■なにかがファイル・DBをつかんでいる
捕まれたものが解除されるまで、キューなどにデータがたまる。
その結果、スローダウンする。
再起動することにより、この捕まれたものが離されると(リセットされると)
通常通りの処理になる。
このとき、つかむことが異常(デッドロックなど)ならばログに書き出すが、
つかむことが正常動作(たとえば、アンチウィルスソフトによるファイルのロック)
の場合、なにもログに書き出されず、ロック解除までキューがたまったままに成る。
→この状態に見える??
ただ、上記のメモリ問題、通信問題も捨てがたい
→ログ書き出しをしてないのかもしれないから
■このほかに考えられること・・
ハードより、ソフトのバグの可能性のほうが高い。
■クラウドを採用しない理由を推測
まず、クラウドを採用したとしても、
バグが原因でおかしくなっているのなら、
スケールしまくったあとで、
いつかは落ちる(かもしれない)
スケールするとき、ただでなく、課金されるとすると、
莫大なお金になる・・・ってことは、避けたい。
プライベートクラウドにすれば、課金されないが
それでも問題がある。
ネットワークの問題だ。
クラウドの場合、どのようなネットワーク経路を通るか、
プライベートクラウドでもはっきりしない(SDNとかあるし)
なので、場合によっては、自サーバー内の別インスタンス(別テナント)
だったとしても、他サーバーにある仮想ルーターを通るなんていう無駄が
ありえる
そうなると、パフォーマンス上の無駄がでる。
この無駄をなくしたいのであれば、クラウドを使わないという選択肢もありえる。
こんなとことろかな・・・
システムが危機に直面! 障害1カ月連続発生 追加サーバーも欠陥、原因不明
http://www.sankei.com/politics/news/160301/plt1603010039-n1.html
現象は
・なぜか、2号機はスローダウンする?
→「2号機」と明確に言っているので、クラウドではないと推測できる
・再起動すれば、直る
今回は、この現象から考えられることと、
なぜ、クラウドを採用しないのかについて考えてみる
■現象から考えられる原因
スローダウンして再起動すると直る原因というのは、いくつか考えられる。
すぐ考え付く主原因は3つ
・通信エラーないし、通信上の問題
・メモリ上の問題
・なにかがファイル・DBをつかんでいる
以下、それぞれのケースを考えてみる
■通信エラーないし、通信上の問題
2つの同期しているプロセスがあり、微妙に誤差が有るとき、
誤差が蓄積して、同期がずれると、それ以降エラーになる。
この場合、再起動しないと直らない。
ただ、この場合はスローダウンするというよりか、急になる。
スローダウンするケースは、ある程度の通信エラーが起きるときだが、
この場合は、だんだんエラーが増えてきて、いつかは耐えられなくなり
障害が発生するケース。
このとき、再起動したら、エラーになっていたものをクリアする場合は
再起動すれば直る。
ただし、このケースは、エラーが起こった時点でログを書かせていると
思うので、原因追求はしやすいはず
■メモリ上の問題
メモリリークがどこかで起きていると、重くなって、最終的に
破綻する。再起動すれば直るが、再起動する前にリスタート
してしまうこともある
Javaなどの場合、ガベージコレクションが起こる。
とくに、フルガベージコレクションが起こる場合は、一時的に
処理がとまるので、このときに、キューが滞ったり、通信が滞ったりする。
これが何回も起こると、スローダウンする。
再起動することによりメモリがクリアされるので、
当分ガベージコレクションが起こらないで、正常に処理できる
ただし、このケースは、エラーが起こった時点でログを書かせていると
思うので、原因追求はしやすいはず
■なにかがファイル・DBをつかんでいる
捕まれたものが解除されるまで、キューなどにデータがたまる。
その結果、スローダウンする。
再起動することにより、この捕まれたものが離されると(リセットされると)
通常通りの処理になる。
このとき、つかむことが異常(デッドロックなど)ならばログに書き出すが、
つかむことが正常動作(たとえば、アンチウィルスソフトによるファイルのロック)
の場合、なにもログに書き出されず、ロック解除までキューがたまったままに成る。
→この状態に見える??
ただ、上記のメモリ問題、通信問題も捨てがたい
→ログ書き出しをしてないのかもしれないから
■このほかに考えられること・・
ハードより、ソフトのバグの可能性のほうが高い。
■クラウドを採用しない理由を推測
まず、クラウドを採用したとしても、
バグが原因でおかしくなっているのなら、
スケールしまくったあとで、
いつかは落ちる(かもしれない)
スケールするとき、ただでなく、課金されるとすると、
莫大なお金になる・・・ってことは、避けたい。
プライベートクラウドにすれば、課金されないが
それでも問題がある。
ネットワークの問題だ。
クラウドの場合、どのようなネットワーク経路を通るか、
プライベートクラウドでもはっきりしない(SDNとかあるし)
なので、場合によっては、自サーバー内の別インスタンス(別テナント)
だったとしても、他サーバーにある仮想ルーターを通るなんていう無駄が
ありえる
そうなると、パフォーマンス上の無駄がでる。
この無駄をなくしたいのであれば、クラウドを使わないという選択肢もありえる。
こんなとことろかな・・・