キャパシティ プランニング

9,098 views

Published on

0 Comments
47 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,098
On SlideShare
0
From Embeds
0
Number of Embeds
4,374
Actions
Shares
0
Downloads
0
Comments
0
Likes
47
Embeds 0
No embeds

No notes for slide

キャパシティ プランニング

  1. 1. キャパシティプランニング 2012/12/14 社内勉強会外道父@GedowFather Copyright © DRECOM Co., Ltd All Rights Reserved. 1
  2. 2. い ジ サ な見会冗 い ャ ー にて社談かのは ん ブ バ ?ら業 だ ジ な言績 よ ャ んえを ? ブ て! 使 え ば Copyright © DRECOM Co., Ltd All Rights Reserved. 2
  3. 3. 自己紹介 Copyright © DRECOM Co., Ltd All Rights Reserved. 3
  4. 4. 自己紹介■私は 外道父@GedowFather■所属 ドリコム■職種 インフラエンジニア■ブログ http://blog.father.gedow.net/ Copyright © DRECOM Co., Ltd All Rights Reserved. 4
  5. 5. 概 要 Copyright © DRECOM Co., Ltd All Rights Reserved. 5
  6. 6. 目次 1. 考え方(実演混) 2. 具体的計画例 Copyright © DRECOM Co., Ltd All Rights Reserved. 6
  7. 7. 判断材料 [CPU]  限界利用率(スレッド数×100%)  合計利用率 [Memory]  容量 [Disk]  IOPS  iowait  容量 [Network]  Input/Output 各転送量(規格による) Copyright © DRECOM Co., Ltd All Rights Reserved. 7
  8. 8. お知らせ 気になったら その場で質問してね 最後でもいいよ Copyright © DRECOM Co., Ltd All Rights Reserved. 8
  9. 9. CPU Copyright © DRECOM Co., Ltd All Rights Reserved. 9
  10. 10. CPU – 限界利用率  CPUスレッド数を確認する $ grep ^processor /proc/cpuinfo | wc -l 16 $ top -d1 # 表示後に 1 を押す $ top -d1 top - 17:26:58 up 96 days, 0 min, 1 user, load average: 0.39, 0.44, 0.37 Tasks: 292 total, 2 running, 288 sleeping, 0 stopped, 2 zombie Cpu0 : 41.4%us, 3.0%sy, 0.0%ni, 54.5%id, 0.0%wa, 0.0%hi, 1.0%si, 0.0%st Cpu1 : 8.7%us, 0.0%sy, 0.0%ni, 91.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu2 : 1.0%us, 1.0%sy, 0.0%ni, 98.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu3 : 1.0%us, 1.0%sy, 0.0%ni, 98.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu4 : 2.0%us, 0.0%sy, 0.0%ni, 98.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu5 : 0.0%us, 1.0%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu6 : 35.9%us, 0.0%sy, 0.0%ni, 64.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu7 : 1.0%us, 1.0%sy, 0.0%ni, 98.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu8 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu9 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu10 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu11 : 26.2%us, 1.0%sy, 0.0%ni, 72.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu12 : 1.0%us, 1.0%sy, 0.0%ni, 98.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st 限界利用率 Cpu13 : 33.3%us, 1.0%sy, 0.0%ni, 65.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu14 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu15 : 1.0%us, 1.9%sy, 0.0%ni, 97.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 16470896k total, 15886704k used, 584192k free, 523192k buffers = 16×100% Swap: 3903480k total, 126552k used, 3776928k free, 1539616k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3901 www-data 20 0 541m 375m 4960 S 61 2.3 175:41.70 ruby = 1600% 3923 www-data 20 0 549m 383m 4960 S 39 2.4 168:13.08 ruby Copyright © DRECOM Co., Ltd All Rights Reserved. 10
  11. 11. CPU – 最大利用率  グラフを確認する ピーク時の数値が 272 なので 272 / 1600 % が1台当りでの 利用状況となる Copyright © DRECOM Co., Ltd All Rights Reserved. 11
  12. 12. CPU – 最大利用率  100%換算したグラフも用意 17 / 100 % とわかりやすい が、CPUスレッド数を意識しづらい Copyright © DRECOM Co., Ltd All Rights Reserved. 12
  13. 13. CPU – サーバ見積  利用率が限界の半分に到達したら次を増やす 17 / 100 % ならあと3倍さばける 逆に考えると  利用率が限界の半分になるまで台数を減らせる 17 / 100 % なら台数を 1/3 にできる  全台に均一な負荷の場合に限る  リクエスト数の増減傾向から判断する Copyright © DRECOM Co., Ltd All Rights Reserved. 13
  14. 14. CPU – サービス必要量  WEB/APサーバ 通常、均等に分散されるので 1台当り 272 / 1600 % で20台ある場合 272% × 20台 = 5440% IDC移行の際、5440% / 100% × 2 = 109 threads 必要 あとは新サーバのスレッド数で割れば必要な台数になる  DB/KVSサーバ CLUSTER(MASTER+SLAVE)ごとに負荷が異なるため、 役割で分けて計算する User Cluster などそれぞれの  MASTER合計  SLAVE合計 Copyright © DRECOM Co., Ltd All Rights Reserved. 14
  15. 15. CPU – コア/スレッド当りの性能差  型番がわかる場合  性能チャート http://www.cpubenchmark.net/singleThread.html  世代の性能差 1~2世代で5~10%の差がある  ターボブースト  有効な状態だと単コアが通常の110%程の性能になる  同じ処理でもグラフの表示上は91%になる  普通は無効  型番が不明の場合  姫野ベンチマーク http://accc.riken.jp/2145.htm Copyright © DRECOM Co., Ltd All Rights Reserved. 15
  16. 16. Memory Copyright © DRECOM Co., Ltd All Rights Reserved. 16
  17. 17. Memory – アプリの必要容量(1)  WEB/AP アプリ必要容量  ps u -C ruby の RSS列(KB) 合計  1プロセス 250~500MB  300MB × 30worker = 9GB Memory 16GB のプランなら余裕  worker数はCPU thread数の倍までを目安  多すぎは性能劣化  少なすぎは性能余剰と同時接続エラーを生む Copyright © DRECOM Co., Ltd All Rights Reserved. 17
  18. 18. Memory – アプリの必要容量(2)  DB(MySQL) 全ては my.cnf  my.cnf に計算式が書いてある  mysqltuner や mymemcheck コマンドが便利  画面で説明 Copyright © DRECOM Co., Ltd All Rights Reserved. 18
  19. 19. Memory – OSの必要容量OS必要容量  /proc/meminfo の 現在使用中 = MemTotal – (MemFree + Inactive) OS必要量 = 現在使用中 – Ruby使用量  OSには500MB~1GBあれば十分だが確認すること Copyright © DRECOM Co., Ltd All Rights Reserved. 19
  20. 20. Memory – Out of Memory SWAP  まずは記憶デバイスをメモリに見立てた SWAP領域が食いつぶされていきます  この時点で処理が遅くなってサービスに影響が 出ます  クラウドでは無い場合もある OOM Killer  OSシステムに影響のないプロセスから殺す  プロセス数が少なくて大容量使ってるものから  サービス用のプロセスやSSHがよく殺られる Copyright © DRECOM Co., Ltd All Rights Reserved. 20
  21. 21. Disk Copyright © DRECOM Co., Ltd All Rights Reserved. 21
  22. 22. IOPSの調整 SAS 15,000rpm × 6 RAID10 = 600 / 1,200 IOPS まで Fusion-io ioDrive = 20,000 / 200,000 IOPS までを目安  拡張時は、MAXがこの値に到達する2週間前 には次のサーバ準備に入る  縮退時は、クラスタ統合の合計値が、この目 安値を超えないようにする Copyright © DRECOM Co., Ltd All Rights Reserved. 22
  23. 23. iowaitの調整  iowait の最大理論値はCPUスレッド数×100%  1秒間に100%は、1スレッドが丸々I/O待ちで動けていない状態  16スレッドで100%だと平均して6% = 60ms 待ちではなく、た いていどこかに集中してるので 500ms 待ちとかが発生している  スレッド数に関わらず、iowait 20% で警告、40%で危険が目安 拡張時/縮退時どちらの場合も、問題値の場合は  ソフトウェアによるI/O量を減らすか  メモリ/Diskの増強を行わないと再発する可能性が高い Copyright © DRECOM Co., Ltd All Rights Reserved. 23
  24. 24. Disk容量の調整  性能ではどうにもできない現実  いらないデータを削除してその場逃れしてるグラフがこちら 拡張  同サーバ数で容量を拡大したものに移し替える  台数を増やして均等分散する  IOPSが低いデータの場合、垂直分割してHDDに移す 縮退  統合後の合計容量が、数ヶ月後に足りなくならないように Copyright © DRECOM Co., Ltd All Rights Reserved. 24
  25. 25. Network Copyright © DRECOM Co., Ltd All Rights Reserved. 25
  26. 26. トラフィックの確認  DBやKVSなど台数が少なく同時接続数が多いサーバに注意  Global回線はインフラ管理者/クラウド業者にお任せ とあるDB  規格によって限界値が変わる  Global回線は普通は Input/Output 合計に対する制限 Copyright © DRECOM Co., Ltd All Rights Reserved. 26
  27. 27. KnowHow Copyright © DRECOM Co., Ltd All Rights Reserved. 27
  28. 28. KnowHow(1) 突発系  バックアップ/バッチ処理  基本、サービスには影響ないので、処理時間の 増減がポイントとなる  スペックが変わる時にCPUやDiskI/Oが弱く なって極端に遅くなるのだけは注意 Copyright © DRECOM Co., Ltd All Rights Reserved. 28
  29. 29. KnowHow(2) LoadAverage  ほとんど見ない  CPUスレッド数の倍までなら大丈夫  NFS固まって、CRONで走らせたプロセスが数 百個溜まったのに気づけるとか Copyright © DRECOM Co., Ltd All Rights Reserved. 29
  30. 30. KnowHow(3) リクエスト数と負荷  負荷はリクエスト数に比例する  比例しなかったり、あるタイミングで異常値にな る場合は、取り除くべき・改善すべき、処理・ボ トルネックがある Copyright © DRECOM Co., Ltd All Rights Reserved. 30
  31. 31. 具体例 Copyright © DRECOM Co., Ltd All Rights Reserved. 31
  32. 32. 具体例を見てみる 実際の削減計画で 作成した資料紹介  サービスのスレッド数合計  ピークタイムの合計CPU利用率  BEFORE/AFTERの台数と費用 など Copyright © DRECOM Co., Ltd All Rights Reserved. 32
  33. 33. よ 何 売 削任お売 か 倍 上 減せま上 っ に に したえの た も し たぜら方 な な た 通!には ! る ら 信 ぞ 費 、 は fin Copyright © DRECOM Co., Ltd All Rights Reserved. 33

×