2. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
自己紹介
2
こんにちは Tech Fun 株式会社 ヤマザキです
今回は
ビッグデータ開発のための
ハードウェア入出力基礎知識
と醍して、お話させていただきます
弊社Tech Fun 株式会社に関しましては
http://techfun.co.jp/ でご確認ください
3. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
ビッグデータ(Big Data)は
従来ツールで処理するのが困難な巨大なデータ
のことです
巨大データを扱う開発は増えつつあります
ビッグデータシステムの開発は既存の常識と異
なるため、その基礎知識は重要です
今回は基礎中の基礎である「入出力」に焦点を
当ててお話しいたします
3
概要
4. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
巨大データを実感する
「ビッグデータ」を扱った事がないと、巨大デ
ータの実感が無いでしょう
まずは、「M2M」でのデータ収集を例とし
て、データ量がどの程度になるのか確認してみ
ます
4
5. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
M2Mとは
M2Mは「Machine-to-Machine」の略です
機械同士が人間を介在させず情報交換するシス
テムを指します
通信モジュールの小型化及びコスト削減、通信
その物の高速化により、センサーを代表とする
様々な機器から情報を容易に収集できるように
なりました
5
6. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
M2Mの具体例
家庭で都市ガスを利用されている方も多いかと
思いますが、都市ガスの場合ガス会社が毎月
「検針」しているのはご存知でしょうか
作業員が各家庭のメータを直接見ています
これをセンサーで自動送信できるようにすれ
ば、明らかにコスト削減になります
東京ガスの場合、現在40万台を越えてガスメー
タにセンサーを搭載しています
6
7. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
データ収集の例
以下の例で収集できるデータ量を概算します
■「10万台」の機器
■「10種類」のデータ
■「2種類」のフォーマット
「10種類」のデータは「温度」や「湿度」等を
取得する場合もあるためです
フォーマットを複数取得するのは値検証等が目
的です
7
8. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
データ量の計算
先の例で計算すると
10万 10 2 = 「200万」ファイルです
センサーデータは頻繁に取得した方が正確にな
ります
例えば、5分に一度データを取得した場合
■1日288回
■1日5億7千6百万ファイル
■1データ4KBの場合1日約2.3TB です
8
9. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
入力と出力
収集したデータは当然入力と出力が必要です
■出力、書き込み、output
■入力、読み込み、input
ビッグデータ処理における最初の難関がこの
「I/O」処理の大きさになります
入出力の知識が無いと、見積が不可能です
9
10. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
ディスク
データはディスクに保存します
2013年現在、保存ディスクは通常「HDD」か
「SSD」を選択することになります
「HDD」と「SSD」はどの程度の入出力が可能
なのでしょうか
10
11. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
HDDの基礎知識
HDDのごく基礎的な知識でも意外と理解されて
いない場合もあるようです
まず最初に知らなければいけないのは
「HDDは回転してデータを入出力する」
という事です
あたりまえ過ぎますが、これがビッグデータ処
理では問題になります
11
12. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
HDDの処理速度
HDDの処理速度に関して単位が存在します
HDDの回転数に関する単位は「rpm」です
1分間に何回回転できるかを表わした単位です
rpmだけだと性能が正しく判断できないため、
「IOPS(I/O per second)」を利用します
IOPSは1秒に何回I/Oできるかの単位です
12
13. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
SATA と SAS
HDD には SATA と SAS が存在します
比較目安は以下です(2013年現在)
13
種類 rpm 最大容量
平均故障間隔
(MTBF)
誤り率
(BER)
参考価格 特徴
SATA
7,200
10,000
4TB 40万 - 120万 10^15bits
7,200rpm
1TB
6千円程度
安価
大容量
低速
低耐久
SAS
10,000
15,000
1TB 80万 - 160万 10^16bits
10,000rpm
600G
6万円程度
高価
低容量
高速
高耐久
14. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
HDD IOPSの目安
HDD の IOPS の目安は以下です
あくまで目安のため実機での検証が必須です
14
種類 IOPS目安
SATA HDD 7,200rpm 96 IOPS前後
SATA HDD 10,000rpm 133 IOPS前後
SAS HDD 10,000rpm 158 IOPS前後
SAS HDD 15,000rpm 237 IOPS前後
15. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
HDDでI/Oが間に合うか
IOPSを「120」とした場合
5分で「200万個」のファイルをディスクに書き
込むのは1台のディスクでは不可能です
では単純に計算すると何台必要でしょうか
(200万 5) (120 60) 「56」台
処理するためには複数のディスクを連結させる
必要があります
15
16. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
SSD の基礎知識
SSDはメモリを用いたディスクです
メモリにはRAM、フラッシュメモリ等を利用し
ます
HDDと異なり回転するわけではないので、
IOPSが非常に大きいのが特徴です
但し、価格が高く、寿命も短い傾向にあります
データ蓄積に必要な1単位は「セル」です
16
18. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
SSD の入出力速度
SSDの入出力速度はタイプの違いよりも、メー
カーでの違いが大きいのが現状です
メーカーによっては HDD よりも遅い物も実在
しています
実機検証は必須です
18
19. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
SSDでI/Oが間に合うか
SSDのIOPSを「1万」とした場合
5分で「200万個」のファイルをディスクに書き
込むのは1台のディスクで「可能」です
ただ、SSDは容量が少ないため、複数のディス
クを連結させることが多いです
19
22. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
ディスク速度の計測
HDD も SSD も実機で速度計測が必須です
計測するソフト、コマンドは以下を利用すると
簡単です
Windows: CrystalDiskMark
Linux/Mac:dd、fio、iometer
22
23. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
CrystalDiskMark
CrystalDiskMark はオープンソースの
Windows用HDDベンチマークソフトです
GUI操作で簡単に速度計測が可能です
23
画像はCrystalDiskMark公式サイトより引用
24. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
dd
ddはLinux/Macでは通常標準インストールされ
ているコマンドの一つです
以下のように利用します
■書き込み速度計測
time dd if=/dev/zero of=data.dd bs=1M
count=1024 oflag=direct
■読み込み速度計測
time dd if=data.dd of=/dev/null bs=1M
24
25. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
メモリ
ディスク書き込みは速度に限界がありますの
で、メモリも非常に重要です
メモリにもいくつかの種類が存在します
例えば「DDR SDRAM PC3200(DDR-400)
1GB CL3 ECC Registered」の表記の意味を
全て理解できている必要があります
25
26. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
DDR SDRAM
メモリにもCPU同様クロック(周期)が存在しま
す
DDR SDRAM は1クロックに2回入出力可能で
す
クロック数の2倍処理可能になっています
26
27. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
クロック
CPUとメモリはバスにより接続されています
バスとの通信回数が「クロック」で定義され、
単位は「MHz」です
「PC3200」等はメモリの名前(型番)
「DDR-400」等がメモリの入出力速度です
SDRAMでは2倍なので「DDR-400」とは
「クロック200MHz」の意味になります
「PC3200」は必ず「DDR-400」です
27
28. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
CL
CL(CASLatency)は READ に必要なクロック
数です
数値が少ないほどREADが速いことになります
通常の処理ではこの差は体感できないのです
が、ビッグデータ処理ではデータ量によりかな
り大きな差として表われる場合があります
28
29. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
ECC
ECCはメモリ入出力のエラー検出訂正機構です
正確なデータ処理が必要な場合はECCが必要で
すが、ECCを有効にすると、当然のように
「入出力が遅く」なります
ビッグデータ処理ではECCを無効にする場合も
あります
ECC付きメモリは高額ですので本当に意味があ
るのか検証する必要があります
29
30. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
CPUのI/O問題
入出力をするのはディスクだけでは無理です
必ずCPUが入出力処理をします
CPUの品質やクロックによって変化しますが
CPU 1コアで処理できるI/Oは
「200MB/s」
程度を目安とすると良いでしょう
これを越えるとI/O wait(待機)が発生します
30
31. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
SSD における CPU問題
SSD を利用すると I/O が高速に可能です
ただし、CPUが間に合わない場合が発生します
SSD を利用する場合、CPUが処理可能なI/Oを
正確に確認する必要があります
I/OにおいてCPUの考慮が抜ける場合は比較的
多いようですので注意したい所です
また、コアを増やした場合、プログラム側の処
理も変更する必要があるかもしれません
31
32. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
ネットワーク
ネットワークとの通信はネットワークカード
(NIC)を通して行なわれ、速度は
「10Mbps」「100Mbps」「1000Mbps」
が存在します
「1000Mbps」= 「1Gbps」で1分に 60G 転
送可能です
32
33. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
NICの速度
NICだけ速度が速くても意味がありません
ケーブル、ハブ等全ての速度が影響します
インターネットとの接続がある場合は、最速で
も100Mbps の 8割程度までしか出ない前提で
考慮すると良いでしょう
33
34. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
ボンディング
NICで帯域不足や、負荷の分散をしたい場合
「チャンネルボンディング」や「チーミング」
という手法で複数のインターフェースを束ねる
ことが可能です
当然、マザーボードの対応と、複数のインター
フェースが必要です
Public 2、Private 2 で 4インターフェース
存在するのが理想的です
34
35. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
プログラム側の対応
当然のように入出力はハードウェアのみ対応し
ても速度は速くならない場合があり、プログラ
ム側の工夫も必要です
プログラム側の入出力対応は別の機会にご説明
いたします
35
36. CopyrightⒸ2013-2014 Tech Fun Corporation All Rights Reserved.
まとめ
ソフトウェア開発者であってもハードウェアの
知識が求められる機会も今後増えてくるでしょ
う
今回は簡単な事項しか説明していませんので、
各自でさらに調査していただけると良いかと思
います
本日はご静聴ありがとうございました
36