サーバ管理者にとって理解しなければならないことはたくさんあります。
今回はその基本となるハードウェアの特徴と用語について説明します。普通にPCを扱う際にも役に立つので、ぜひ理解していってください。
CPU
CPU(Central Processing Unit:中央演算装置)は、コンピュータのほとんどの処理が行われる部分です。
CPUはコンピュータの核となる部分であり、CPUをまず理解することで他の装置の理解も深まります。
よくたとえ話として、CPUは脳であると言われます。CPUは処理を大量に高速に処理を行うためこのように呼ばれますが、大事なのはCPUが核となっていて他の装置は全て補助であるということです。
つまり簡単に言うと、CPUが弱ければ他の装置がいくら強くても意味がないということです。
最近はGPUコンピューティングという特殊な計算も行われ始めたので混乱しがちですが、GPUコンピューティングはAIや大規模計算など限定的であり、まずはCPUを基本として理解しましょう。
CPUの特徴
CPUは小さなチップでとにかく高い性能をあげます。これは、近い距離に全ての装置があったほうが通信が早く済むためです。
つまり、コンピュータはいかに小さく詰め込むかという課題にも立ち向かってきました。
しかしここで立ちふさがるのが、発熱です。電線に電気を流す以上、発熱します。これをいかに抑えるかが重要となってきます。
基本的に性能と発熱は比例します。CPUにはクロック数と呼ばれる1秒間の処理回数が決められていますが、これを強制的に上げると発熱しすぎてコンピュータが停止したりします。
- 動作周波数・・・1秒に刻むクロック数。動作周波数が高いと処理は早いが、電力効率は悪化し発熱しやすい
そこで発熱への対応として2つの対策が行われてきました。
1つは細線化です。電線を数十nm単位まで補足することにより、使用電力を下げて発熱も抑えました。
ただ、細線化については熾烈な競争の結果としてほぼ限界レベルになっており、各社間でほぼ同じに落ち着いています。
微妙な差ではありますが、Intelは工場の効率化のために細線化を一時的に止めた時期があり、AMDのほうが若干進んでいるようです。
もう一つがマルチプロセッサです。多数のコアを搭載することで、同時進行で処理を行えます。
例えば、wordを開きながらyoutubeを見たりする場合は、同時にコアを利用することで効率化できます。
- コア・・・CPUの主要計算部
最近のCPUの進化の歴史は、マルチスレッディングの歴史と言っても過言ではありません。2000年代前半からほとんどシングルコアは進化しておらず、並列処理による処理量の増加が進められています。
また、CPUで重要なのがキャッシュです。キャッシュは、コアで計算した結果を一時的に補間する記憶装置です。
本来はメインメモリが記憶装置の役割を担いますが、CPUで計算した結果をメインメモリまで送ると時間がかかります。
そこで、CPU内に小さな部屋を作ってやって、一時的に記憶できるようにしたのがキャッシュというわけです。
キャッシュはあくまで一時保管庫なので、容量はさほど多くありません。計算規模が小さいとメインメモリを使う必要がなくなるので急速に性能が上がりますが、計算規模が大きくなるとメインメモリまで行くので恩恵は感じにくいです。このあたりは計算対象を考えながら選びましょう。
現状では、IntelよりもAMDのほうがキャッシュが多い傾向があります。
メモリ(メインメモリ)
メモリは短期記憶領域と呼ばれ、一時的にデータを記憶します。先述したCPUの計算結果も一般的にメモリに保存されます。
メモリはあくまで”一時記憶”であるため、電源を切ると消えてしまいます。
例えば、wordを開いてyoutubeを開いた状態でシャットダウンをかけた場合、起動後は何も開かれていないでしょう。これは、ウィンドウを開くという情報がメモリに保存されているためです。
メモリの特徴
メモリで重要なのが、容量と速さです。
容量はシンプルです。メモリ容量が少ないとPCが処理をまとめてできなくなります。例えば、ウィンドウを開き過ぎでカクつくというのはこの現象です。
メモリが少なくてもCPUが順番に処理することであたかも全て並列で処理しているように見せていますが、結局は交互に処理しているだけなので、実質CPU性能を落としたことと同義になります。
CPUよりもメモリのほうが安価なので、必要な処理に対して多めに搭載しておくことをオススメします。
「メモリは多めに積んでおけ」はPCを購入する際によく言われる格言?なので。
もう一つ重要なのは、メモリの速度です。
ここでメモリの速度と呼んでいるものは、「メモリ自体の速さ」と「他の装置との通信速度」を意味します。
特に意識してほしいのが通信速度です。DDR3-800の場合は、800が通信速度を表します。また、通信帯と呼ばれる通信する際のデータ転送幅も広いほうが良いです。
容量だけで見ると中古のメモリでも良いように感じますが、通信速度と通信幅で性能が変わってくるのでご注意ください。
ディスク(HDD/SSD)
HDDもSSDも用途は同じで、長期的に記憶を保存することです。
メモリは電源を切るとリセットされますが、HDDとSSDは電源を消してもリセットされません。一般的に、ファイルと呼ばれるものはHDDやSSDなどの長期記憶に置かれます。
これらを選ぶ上で最も重要なのは、容量です。最近はクラウドに保存する事が多いので、それほど重要ではなくなりつつありますが、余裕を持った容量を選ぶようにしましょう。
HDDとSSDの最も大きな違いは、通信速度です。HDDは機械的な構造でデータを保管するのに対して、SSDは電気的にデータを保管するので速度が大違いです。
それぞれ利点欠点があるので、後述します。
HDDの特徴
HDDはハードディスクドライブのことです。記憶装置としてならハードディスクと呼ぶべきですが、このあたりは結構適当です。ここでは短く呼ぶためにHDDと表記します。
HDDはレコードのように円盤にデータを書き込みます。レコードは凹凸でデータを記入しますが、HDDは磁気で書き込みます。
そして、書き込みと読み込みは針を動かして指定の位置のデータを読み取るようにします。この針の操作に依存するため、HDDはどうしても読み込み速度が電気的な仕組みの装置(SSDやメインメモリ)に比べると圧倒的に遅くなります。
SSDに勝る部分としては、耐久性と安価な点です。
物理的な読み込みである分、HDDのほうがデータが安全に保管できます。SSDだと読み込み回数で劣化しやすいという問題もあるため、重要なデータは基本的にHDDに保管したほうが良いです。
また、SSDは高いのでHDDをまずは検討するというのが一般的でしょう。
HDDはいくつか種類があります。
- SATAハードディスク・・・安価であり、一日8時間程度の稼働を想定している
- SASハードディスク・・・高信頼性かつ高速であり、24時間を想定している。ただし高い
RAID
HDDは高信頼性ですが、それでも5日は壊れます。そこでバックアップを備える機能がRAIDです。
RAIDにはレベルがあり、様々な種類がありますが、基本使われるのはRAID1とRAID5もしくはRAID6です。
RAID1(もしくはRAID10)は、ミラーリングです。全く同じデータを2つのHDDに書き込むことで、耐障害性を向上させます。
RAID1は最も安全ですが、一方で全てのHDDに導入すると非常にコストがかかります。
RAID5は大量のHDDを使用している場合に便利です。パリティと呼ばれる修復用データを全てのディスクに分散させることで、故障時に失われたデータを復旧できるようにします。
これにより、RAID5ではHDDを1つ追加するだけで故障に対応できます。RAID6も同様で、同時にHDDが2つ壊れる可能性を考慮して、HDDを2つ追加します。
多くのHDDを利用するサーバの場合はRAID6が使用され、管理サーバなど少機能だが耐障害性を上げたい場合はRAID1を利用します。
SSDの特徴
SSD(Solid State Drive)は半導体を用いているため、高速で低電力です。最近のPCでは、ストレスフリーのためにOSをSSDに載せるのが一般的になりつつあります。
SSDの大きな欠点は、書き込みを繰り返すと半導体素子が劣化することです。
もし家庭用SSDをサーバに使用してしまうと、1年で使えなくなるくらいには劣化が激しいです。そのためサーバには専用のSSDを使用します。
しかし、劣化しやすさは変わらないため、サーバ用SSDで信頼性の保証のために書き込み回数が表示されています。
購入の際には、書き込み回数も意識して選んで頂くと良いでしょう。耐久性を重視したい場合はHDDを選ぶほうが無難です。
おわりに
今回は、サーバ管理者が知っておきたいこととして、ハードウェアの基本知識について説明しました。
重要なポイントは下記のとおりです。
- CPUはほとんどの処理を行う
- 現代のほとんどのCPUはマルチコアで構成される
- CPUには小さな記憶装置として、キャッシュが搭載されている
- メモリは一時記憶装置である
- メモリは容量と速度を両方意識して選ぶ
- HDDは耐久性が高いが、機械的な仕組みにより遅い
- HDDはRAIDにより、信頼性を向上させることができる
- SSDは耐久性が低いが、電気的なのでアクセスが早い
それぞれのパーツの知識は自作PCなどでも役に立ちます。ぜひ理解しておくと良いでしょう。
また、普段のPC利用では意識しませんが、サーバにとってトラブルは大損害を招くため、信頼性や耐久性は非常に重要です。
RAIDはサーバ管理者にとって意外と重要な知識なので、最低限RAID1とRAID5,6については理解しておくとトラブルに対応しやすくなるでしょう。
youtubeもやってます
youtubeでもIT系の基本知識に関する解説をやっています。こちらもどうぞ。