1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
  09 ,2017

ビジネス、心理、マーケティングを軸にいろいろなニュースや事象を分析します


プロフィール

なおゆき

Author:なおゆき
Web広告代理店でシステムエンジニアをしています。
セルフイメージはProblem Analyzer(問題を分析する人)。

このブログでは、IT を中心に
新ビジネスのニュースや現場でよくある問題について
分析します。

検索フォーム
ブロとも申請フォーム
QRコード
QRコード
--

Category: スポンサー広告

Tags: ---

 

スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

21

Category: 未分類

Tags: ---

Comment: 0  Trackback: 0

なぜ、みずほ銀行のバッチ処理が遅れたか
この数日、みずほ銀行の ATM が使えなくなった。

いくつかのニュースを見たが、

1.特定支店の特定口座への振り込みが想定を上回った
 (該当する口座は調査中。フジテレビの義捐金口座ではないか、との憶測がある)
2.その結果、バッチ処理が大幅に遅延した
3.サーバの追加や性能のアップで対応した

の2点について記述がみられる。
1→2の因果関係の詳細は SE には当たり前のことなのだが、
それをかみ砕いた解説がなかった。
どれほどのニーズがあるか分からないが、起きている現象を推測してみる。


私の推測は、
振り込みが増えたことで、ハードディスクにアクセスするようになったから」。

まず物理的な計算速度から。

PC やサーバはマザーボードというのがあり、
その上に CPU(計算する所)、メモリ(すぐ使うデータをためておく所)、
ハードディスク(後で使うデータをためておく所)がある。

CPU、メモリ、ハードディスクの速度を比較したい。
CPU・メモリの演算とハードディスクの回転数を同列に扱ってよいか、という疑問はあるものの、
単位を揃えれば、大体の目安にはなるだろう。
どうせいずれかに数倍程度の適当がつくだけだろうから。

各デバイスの速度を同じ単位でまとめると、
CPU:      1秒間に 20~30億回の周期(2 ~ 3GHz)
メモリ:    1秒間に 10億回の周期  (1GHz)
ハードディスク:1秒間に 40万~60万の回転(7,200 rpm ~ 10,000 rpm を秒単位にざっくり変換)

※詳細は補足を参照。

だから、高速な CPU と メモリでデータをやり取りしている内はそんなに変わらないが、
ハードディスクにアクセスするようになった途端、
ざっくり言って1000倍くらい遅くなる。


次にソフトウェアについて。

実際に振り込みなどのデータを管理しているのはデータベース(以下 DB と記す)というもの。

3種類くらいのデータベースをざっくりと見てきたが、
メモリの管理は大体以下の3種類。(ちょっとウソかも。。)
A. 管理用のメモリ領域(プログラム的なデータがある領域)
B. よく使うデータを一時的に保持しておく領域
C. データを取得する SQL という命令を効率よく行うための分析をする領域

BやCの領域が不足すると、ハードディスクにアクセスするようになって遅くなる。
今回は振り込みのデータが増えたから、Bが不足してハードディスクにアクセスしたのだろう。


まとめると、
1. 特定支店の特定口座への振り込みが想定を上回った
1.1.DBで一時的にデータを保持する領域をあふれる量だった
1.2.DBがハードディスクにアクセスするようになった
1.3.普段のスピードよりもざっくり 1,000 倍くらい遅くなった
2. その結果、バッチ処理が大幅に遅延した。
2.1.これはやばい、ということでハードディスクにアクセスしなくて済むようにしようと判断
3. サーバの追加やCPU、メモリの性能のアップで対応した

以上、蛇足な解説でした。


※補足(10~15年くらい前の記憶をベースに記す。)

マザーボード上には交流電流が流れていて、その周期を利用してピコピコ計算したり
データのやり取りをしたりする。CPU だけ、特別にその周期を短く=>早くする仕組みがある。
このスピードは1秒間何回の周期を回すかという単位 Hz(ヘルツ)であらわされる。

これは CPU のクロック数だったり、マザーボードのバスクロック数だったりする。

多分、今のところ、CPU が 2~3 GHz(1秒間に20~30億回),
マザーボードのバスクロック数 が 1 GHz(1秒間に1億回) あたりだろう。

それに対してハードディスクのスピードは1分間当たりディスクの回転数(rpm)であらわされる。
多分、今のところ、大体 7,200 ~ 10,000 になる。
1秒あたりの回転数にすると
432,000 ~ 600,000 になる。

ニュースを追いかけると、データを DB からロードしたところで、
メモリ不足でエラーが発生しまくったように読み取れた。

その後、バッチ処理を再実行かけたらレコードが二重にできたりして、
収拾がつかなくなったと思われる。

運用ミスと設計ミスの掛け算であんなことになった、ってこと。
スポンサーサイト

テーマ : 気になるニュース    ジャンル : ニュース

Comments

Leave a Comment

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。