20
34

More than 5 years have passed since last update.

性能設計について

Posted at

性能設計はかなり難しいゾーンだと思います。
今までやってきた感覚だと以下の通りです。

構築メンバーの意見
→○○って型番のこういったスペックで△△の使用率です!!

上流メンバーの意見
→それは分ったけど、じゃあ今売ってるどのサーバのどれを何台必要なの?

クラウドは日が浅いのでちょっと分らないです。見ていて思うのが、いつでも性能変更できるからといってあまりみりみりやらないように見えます。今いるところのゆるふわ感・・・・(愚痴)

ただし、物理サーバの場合は、初期投資額の準備・置き場所・電源・手配・配線・・・etcとやること満載です。
ゆるふわだと終わります。

じゃあ実際にどうするか
私のやっていた方法を記述します。
一応国の機関に認めて貰えていたので、それっぽい感じだと思います。

性能設計の流れ

性能設計の流れは一般的に以下の通りです。いろんなサイトや本、某メーカの性能設計講習等々で学びました。
機材手配がスケジュール的に後半で良ければ、実際の構築物で負荷試験等を実施してハードを決めることが可能です。
ただし、世の中そうは行かないのが多いかと思います。

机上計算 → プロトタイプによる実測及び補正 → [機材手配] → 実際の運用等でのチューニング

机上計算:色々な計算方法があるので詳しくは書きません(要望があれば思い出し+勉強して書きます)
     ただし、アプリケーション構築チームの設計がある程度進んでいないとできません。
     出てくるのはせいぜいどれ位のHDD用意すれば良いか ぐらいです(怒)

プロトタイプによる実測及び補正:これもアプリケーション構築チームが作ってくれないことにはできません。
               
実際の運用等でのチューニング:これは事後のお話です。ちゃんとチューニングして設計書に反映しておきましょう。
               次同じシステムやる時に頼りになります。

上記見て貰うと分ると思いますが、性能設計は絶望との闘いです!!

じゃあどうするのさ!(怒)

■新規構築
 ①イチから作るしかない(絶望:大)
  何としてでもプロトタイプを作成して貰いましょう & 性能設計出来ない旨を訴えて設計のスケジュールを長くとりましょう

 ②お客様のところで類似システムがある or 今まで似たようなシステムを手掛けたことがある(絶望:中)
  類似システムの性能を頼りに説得文章を捻出します。

■換装(絶望:小)
 性能設計の流れを説明し、今動いているものが一番確実であると説明をします。
 そして、現行機器の性能分析をして、次の性能をどうするか決めます。

部品に関する性能は何をポイントとするか

 今までやってきた感じだと、CPU、メモリ、HDDが決まれば営業もSEもOK!って感じです。
 どれも楽な方法は公表値を利用して机上で終わらせることです。
 お客様によっては搭載されているサーバを借りる or 買う→ベンチマークの上で決定する場合もあります。
 ベンチマークなんて・・・やりたくない

1.CPU
 今やメモリの搭載可能容量が大幅に上がり、ボトルネックが来るのがCPUとHDDになってしまいました。
 特にCPUはソフトウェアのライセンスに大きく響くので、積み過ぎは良くないです。
 下記3つのどれかで良いと思います。

(1)SPECのベンチマーク値を使用する
SPEC(Standard Performance Evaluation)というベンチマークテストの標準化を行っている非営利業界団体があります。
コンピュータの主要メーカのサーバについてのベンチマーク結果が公表されています。
http://www.spec.org/

色々テストがありますが、SPECint(整数演算性能)か、SPECfp(浮動小数点演算性能)を見ればよいと思います。
特に複数タスクで測定したSPECint_rate、SPECfp_rateの値を使います。
2014/6/28現在では「SPEC CPU2006 」を見てもらえれば大丈夫です。
(一応これにはメモリも含まれていますが・・・)

(2)FLOPS(Floating-point Operations Per Second)を計算する
浮動小数点数演算の性能になります。
http://ja.wikipedia.org/wiki/FLOPS

`クロック数 × 1サイクルの命令数 × コア数'

(3)ベンチマークする
ロジックで変わってしまうので、自分で組んだり・ソフト使ったりで値が変わっちゃいます。同じものを使い続けるのが良いです。

このサーバではいくつでした。予定サーバではいくつで何倍なので大丈夫です!とか言いましょう。

2.メモリ
メモリの速度で処理能力が大きく変わります。しかし、他の部品の速度がボトルネックとなることが多いことから、容量を意識する方が強いと思います。

3.ディスク
インタフェース速度や回転速度等が大きく影響します。
用途によって使い分けるのが一般的です。

ただしお客様が一番意識するのは容量と冗長性(RAID)なので、そこだけ出しましょう。

システム領域:それほど性能要求が大きくないので、可用性重視で良いと思います。
データ領域 :参照・変更・削除が多い、容量が多いため複数本のディスクを用いた構成が望ましいです。
要求性能と予算に応じてどこまでやるかが勝負です。

※2および3の性能を強く求められた場合は
(1)カタログスペックで攻める
   インタフェース速度、回転数等々でかわせます

(2)ベンチマークする
   最悪の場合ですがしょうがないです・・・・

現在利用しているサーバがあればまとめよう

下記の流れで現行システムの総性能をまとめましょう。

①機能などのカテゴリでサーバを分け、メーカ名、型番、CPU、メモリ、HDDの性能値を記述する。台数も記述する。
②それぞれの性能を台数でかけ、総性能を算出する。

新しいサーバをどうするか

①サーバを決める前にやっておくこと
 ・利用者数、接続数の増加はあるか
  →ある場合は増加率とか言って総性能にかけてください。

 ・機能追加や今遅くて困っているなどないか
  →安全率という言葉を用い、1.2倍とかしてみる。(寝技)

②何か代表的なサーバを決めてしまいましょう
 ・1台あたりの性能が今と同等(無難)
 ・集約化を図るため、数倍の性能を持つものにしてみる
  理由としては:今の市場で一番多いモデルであり、安定した供給が見込まれる 等
  →リスクはあるが、OS使用しているところが台数減った時に浮くので保険ある状態

③いよいよ新サーバです!
 総性能/②で台数を出す

以上です。今までの流れをもっともらしく書いて調整すれば、何とかなります。

そのほかにやっておくこと

重量、消費電力、発熱量については併せてまとめておきましょう。
お客様のサーバルームへの設置計画上で必要となります。

20
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
34