hbstudy#25ピクシブ株式会社   飯田 祐基
アジェンダ● 紹介● はじめに● Before● After● ドーピングTips集● 近況と今後の展望
紹介
自己紹介● 飯田 祐基 (@semind)● もうすぐ三十路● もうすぐpixivに来て2年 (インフラ部隊)● 前職はプロバイダ (I○J)● ネットワーク、広告配信、画像配信、データセ  ンタ● リクルータみたいなことも● コーディングもサ...
イラストを中心としたSNSサービス
WEB+DB PRESS Vol.63絶賛発売中! (pixivのこれまでの歴史)
もっと掘り下げて詳しく!そして何か一つでも実践できるものを見つけて  いただければ!が今日のテーマです
はじめに
弊社システムの特徴   それは....
自作サーバ!
なんでこんな事してんの? 安いからに決まってまんがな
人件費...管理コスト...
黙らっしゃい!ない袖は振れない
色々大丈夫なの?          案外いけます(でもBtoBとかではやらない方が良いと思います)
すぐ壊れたりしないの?        そうでもないです● 200台強でディスク故障が数回/年● 意外とNICがダメになりやすい (1回/月未満)● その他のパーツも月1回あるかないか
捌ききれるの?そこは努力が必要です
捌くための努力        大きく2パターン● 積むもの積む(ハードウェア増強)  => コスト大● 積むもの積まない (最適化)   => コスト小
積まない!積んだら負けかなと思ってる(最近は積むとこは積んでる)
積まずに済ます努力       当然やってます!● プログラムの最適化 ● ミドルウェアの選定、チューニング
安いものを限界まで使う  安いものを限界まで使う   (性能を引き出す)
大丈夫....?心配性はインフラエンジニアには大事な素養
大改造!!劇的ビフォーアフター – pixivを通り抜けたハードウェアたち –
Before- 自社オフィスルームでの運用 -
ベニヤ(B28)サーバ● CPU: AMD AthlonⅡ X4 605e● Memory: バルク 8GB● HDD: WD1600BEKT (Crucial RealSSD C300 64GB)● 電源: KRPW-V300W● MB: G...
パーツ(機器)を選ぶ基準● 安い!● 消費電力が少ない (かなり重要)● 基本同じものを揃える● 用途に合わせて一部良い物を使ったりする● 機能要件と値段を天秤に
ラック  ルミナスホームラック4段90W LH9015-4 (x2)   ● ¥18,000● ルミナスはエレクタより安価    20台 / 1ラック   東急ハンズで購入
UPS      UPS1200LX ¥7,980 (x7)● ホントに安い● 2年すると瞬断でも ×● 電圧降下が起きて不安定 サウンドハウスで購入
L2スイッチ(Giga 24port)        Buffalo LSW-GT-24NSRR● ¥ 30,000● ほとんど壊れない● 少し上位のモデルは700Mbps出た● BPDU透過
ルータ (外向けの接続)         Super OPT 100e● 100M共用回線用● 価格.comで調べたら最安が¥16,000くらい● 通販で買ってた● 今はL2スイッチと同じものに入れ替えた
ベニヤ板 大きいのを1枚買って加工してもらう   120円 / 1枚 (東急ハンズ)  感電対策のために非常に重要マザーボードのたわみ対策で非常に重要   実はベニヤじゃなくてMDF板      懺悔のお言葉
たわむ
実際運用してて感じた事● まとめて調達するのは難しい ● 家電量販店でも値切れる● 販売停止のサイクルが早くて困る● ロット単位ではずれ引いたりする● 思ったよりも荒い扱いしても大丈夫 (市販品  でも質は高い)● 配線が結構面倒 & 酷くなり...
悩みどころ(限界)● L3スイッチは比較的高価なのでL2でカスケー  ド繰り返してたらアドレスが足りなくなった &  輻輳が酷くなった● 共用の回線を沢山引いていたら(外→室内  の)ファイバを通す余裕がもうないと言われた● 電源まわりが非常に...
After- データセンタでの運用 -
データセンタ移行● 建物的なキャパの限界● 局舎側のキャパの限界● ネットワーク(輻輳)の改善● 移行に伴い浮いたハードウェアリソースを利  用して配線等を見直し● (色んな意味で)信頼性の向上● ハイブリッド構成
スパゲッティーコード(笑)
meets
L3スイッチ & モール !
HP A5500-24G E● VRRPで冗長化 & スパニングツリー● 定価60万強● 24ポート Gigabit L3 Layer Switching Hub● オフィスサーバルーム、データセンタ間の専用線接続● スター型へトポロジーの変更...
ルータワー(笑)
meets
IDCフロンティア ! ● 契約帯域 Max 8Gbps ! ● 4ラック 100台強稼動 ● コアな機能はほぼすでにこちらで動いている ● 会社から近い ● 外側のスイッチの運用はお任せしている ● データセンタ移行記   http://de...
HP Proliant DL120 G6● 現在の主力機● 定価10万強● iLO (リモート電源管理, Serial over LAN)● 3.5インチベイに2.5インチ変換アダプターで  SSDを接続
A+ Server 2022TG-HTRF● 2Uに4台分 (デュアルCPU)入るベアボーン  キット● ベアボーンのみで30万強● 空間効率が非常に良い● Opteron 8-Core 6128 x8● アプリケーションサーバとして利用● ベ...
HP ProCurve Switch 2510G-48● 各ラックのLANを受けるのに利用● 定価20万強● 48ポート -> L3スイッチを通るトラフィックが減少● L3スイッチのとの間でリンクアグリゲーション (L2 ⇔ L3 2G)● m...
ドーピングTips集
少ないハードウェアリソースで捌くコツ1. キャッシュする2. TCP接続しない3. ピンポイントで良い物使う
nginxでローカルキャッシュ  ● 画像配信系サーバで実施  ● 参照頻度が高く、種類の少ないファイル(js, css, ランキングサム    ネイル, 広告系の画像etc)  ● Disk IOが増えがちなのでメモリ増強 + SSD投入  ...
APC + TokyoTyrantで2段キャッシュ● 広告配信系サーバで実施● APC (Apacheのメモリ空間上にキャッシュ、揮発性)● 元々はMemcahed(unix domain soket)を使っていた● DL120G6でピーク時 ...
APC + TokyoTyrantで2段キャッシュ                  APC                    >   Key Value Store (Unix Domain Socket)                ...
memagentで持続的接続● セッション用KVS、APサーバ間等で利用● TCPの持続的接続● コネクション数の節約
Intel NIC EXPI9301CT● オフィスサーバルーム時代に大活躍● 3500円くらい● LVS、画像のフロントサーバなどに利用● インテルは強い子
Broadcom BCM5709● LVSで利用● 1万● on Ubuntu 10.10 にて CPUコア分散● generic-receive-offloadをoffにしている MTUサイズを越えるSQLクエリーの再送が頻発 $ ethto...
MTU 6144● いわゆるジャンボフレーム● できないNICもままあるので注意● 大きいファイルの転送などには効果あり● 黒魔術系 (リブート病、再送の頻発)
RealSSDシリーズ● メモリには乗り切らない...でもDisk IOが多い所  に利用● 画像キャッシュサーバ、DBスレーブ● ラックマウントサーバの3.5インチベイでもなん  とか使えるかも
Secure Erase● SSDは書き込みを繰り返すと劣化 -> Disk IO  が酷い事に● Secure Erase (完全消去) を実行● 結構劇的な効果あり
近況と今後の展望
近況と今後の展望● 全文検索をTorittonからSolrへ切り替え  ○ インデックス生成バッチ処理にscala● Key Value Store を Kyoto Tycoonへ● ドーピング的な最適化から緻密な最適化へ  ○ パケットのdu...
近況と今後の展望 2● 管理コスト減  ○ フレームワークの導入 (rails, silex)  ○ 開発、デプロイ方法の整備  ○ 監視設定の整備、自動化● データ、ログ解析  ○ レコメンデーション  ○ 最適化  ○ ユーザの動向の把握●...
まとめ● 安くても良い物はたくさんある● でも限界もやっぱりある● 要は適材適所、ケースバイケース● リソースの制限はエンジニアの成長を促す● なんだかんだで自作(選択肢が制限されな  い、自由)というのは存分にメリットあり
では一緒に働いてくれるエンジニアを募集しています     http://recruit.pixiv.net/
ご静聴ありがとうございました
hbstudy25 劇的ビフォーアフター
hbstudy25 劇的ビフォーアフター
hbstudy25 劇的ビフォーアフター
hbstudy25 劇的ビフォーアフター
Upcoming SlideShare
Loading in …5
×

hbstudy25 劇的ビフォーアフター

6,094 views

Published on

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,094
On SlideShare
0
From Embeds
0
Number of Embeds
25
Actions
Shares
0
Downloads
39
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

hbstudy25 劇的ビフォーアフター

  1. 1. hbstudy#25ピクシブ株式会社   飯田 祐基
  2. 2. アジェンダ● 紹介● はじめに● Before● After● ドーピングTips集● 近況と今後の展望
  3. 3. 紹介
  4. 4. 自己紹介● 飯田 祐基 (@semind)● もうすぐ三十路● もうすぐpixivに来て2年 (インフラ部隊)● 前職はプロバイダ (I○J)● ネットワーク、広告配信、画像配信、データセ ンタ● リクルータみたいなことも● コーディングもサーバもネットワークも配線も● 最近の興味はrails, coffeescript, html5, css3
  5. 5. イラストを中心としたSNSサービス
  6. 6. WEB+DB PRESS Vol.63絶賛発売中! (pixivのこれまでの歴史)
  7. 7. もっと掘り下げて詳しく!そして何か一つでも実践できるものを見つけて いただければ!が今日のテーマです
  8. 8. はじめに
  9. 9. 弊社システムの特徴 それは....
  10. 10. 自作サーバ!
  11. 11. なんでこんな事してんの? 安いからに決まってまんがな
  12. 12. 人件費...管理コスト...
  13. 13. 黙らっしゃい!ない袖は振れない
  14. 14. 色々大丈夫なの? 案外いけます(でもBtoBとかではやらない方が良いと思います)
  15. 15. すぐ壊れたりしないの? そうでもないです● 200台強でディスク故障が数回/年● 意外とNICがダメになりやすい (1回/月未満)● その他のパーツも月1回あるかないか
  16. 16. 捌ききれるの?そこは努力が必要です
  17. 17. 捌くための努力 大きく2パターン● 積むもの積む(ハードウェア増強) => コスト大● 積むもの積まない (最適化)  => コスト小
  18. 18. 積まない!積んだら負けかなと思ってる(最近は積むとこは積んでる)
  19. 19. 積まずに済ます努力 当然やってます!● プログラムの最適化 ● ミドルウェアの選定、チューニング
  20. 20. 安いものを限界まで使う 安いものを限界まで使う (性能を引き出す)
  21. 21. 大丈夫....?心配性はインフラエンジニアには大事な素養
  22. 22. 大改造!!劇的ビフォーアフター – pixivを通り抜けたハードウェアたち –
  23. 23. Before- 自社オフィスルームでの運用 -
  24. 24. ベニヤ(B28)サーバ● CPU: AMD AthlonⅡ X4 605e● Memory: バルク 8GB● HDD: WD1600BEKT (Crucial RealSSD C300 64GB)● 電源: KRPW-V300W● MB: GA-MA785GMUS2H 1台あたり5万円弱 (主にビッグカメラで購入) http://www.atmarkit.co.jp/news/201007/21/pixiv.html
  25. 25. パーツ(機器)を選ぶ基準● 安い!● 消費電力が少ない (かなり重要)● 基本同じものを揃える● 用途に合わせて一部良い物を使ったりする● 機能要件と値段を天秤に
  26. 26. ラック ルミナスホームラック4段90W LH9015-4 (x2)   ● ¥18,000● ルミナスはエレクタより安価 20台 / 1ラック 東急ハンズで購入
  27. 27. UPS UPS1200LX ¥7,980 (x7)● ホントに安い● 2年すると瞬断でも ×● 電圧降下が起きて不安定 サウンドハウスで購入
  28. 28. L2スイッチ(Giga 24port) Buffalo LSW-GT-24NSRR● ¥ 30,000● ほとんど壊れない● 少し上位のモデルは700Mbps出た● BPDU透過
  29. 29. ルータ (外向けの接続) Super OPT 100e● 100M共用回線用● 価格.comで調べたら最安が¥16,000くらい● 通販で買ってた● 今はL2スイッチと同じものに入れ替えた
  30. 30. ベニヤ板 大きいのを1枚買って加工してもらう 120円 / 1枚 (東急ハンズ) 感電対策のために非常に重要マザーボードのたわみ対策で非常に重要 実はベニヤじゃなくてMDF板 懺悔のお言葉
  31. 31. たわむ
  32. 32. 実際運用してて感じた事● まとめて調達するのは難しい ● 家電量販店でも値切れる● 販売停止のサイクルが早くて困る● ロット単位ではずれ引いたりする● 思ったよりも荒い扱いしても大丈夫 (市販品 でも質は高い)● 配線が結構面倒 & 酷くなりがち● 物理的に違うホストと間違えやすい● NICが壊れる● Realtekは弱い (でも実績で270Mbpsは出た)● 新しいパーツを直ぐ試せる (SSDとか)
  33. 33. 悩みどころ(限界)● L3スイッチは比較的高価なのでL2でカスケー ド繰り返してたらアドレスが足りなくなった & 輻輳が酷くなった● 共用の回線を沢山引いていたら(外→室内 の)ファイバを通す余裕がもうないと言われた● 電源まわりが非常に不安● セキュリティ的にも非常に不安● リモートで電源操作できないのは不便● 正直地震は怖かった
  34. 34. After- データセンタでの運用 -
  35. 35. データセンタ移行● 建物的なキャパの限界● 局舎側のキャパの限界● ネットワーク(輻輳)の改善● 移行に伴い浮いたハードウェアリソースを利 用して配線等を見直し● (色んな意味で)信頼性の向上● ハイブリッド構成
  36. 36. スパゲッティーコード(笑)
  37. 37. meets
  38. 38. L3スイッチ & モール !
  39. 39. HP A5500-24G E● VRRPで冗長化 & スパニングツリー● 定価60万強● 24ポート Gigabit L3 Layer Switching Hub● オフィスサーバルーム、データセンタ間の専用線接続● スター型へトポロジーの変更● サブネットの分割● かなりCiscoライクでマニュアルを頑張って読めばなんとかなる● 元々はH3C社の製品
  40. 40. ルータワー(笑)
  41. 41. meets
  42. 42. IDCフロンティア ! ● 契約帯域 Max 8Gbps ! ● 4ラック 100台強稼動 ● コアな機能はほぼすでにこちらで動いている ● 会社から近い ● 外側のスイッチの運用はお任せしている ● データセンタ移行記   http://dev.pixiv.net/archives/1140352.html ● 6GbpsをさばくオレオレCDN構築術 http://www.slideshare.net/semind/20101220-pixiv-techmeeting-6267332
  43. 43. HP Proliant DL120 G6● 現在の主力機● 定価10万強● iLO (リモート電源管理, Serial over LAN)● 3.5インチベイに2.5インチ変換アダプターで SSDを接続
  44. 44. A+ Server 2022TG-HTRF● 2Uに4台分 (デュアルCPU)入るベアボーン キット● ベアボーンのみで30万強● 空間効率が非常に良い● Opteron 8-Core 6128 x8● アプリケーションサーバとして利用● ベニヤサーバ16台分 (CPUコア数ベース)http://www.supermicro.com.tw/Aplus/system/2U/2022/AS-2022TG-HTRF.cfm
  45. 45. HP ProCurve Switch 2510G-48● 各ラックのLANを受けるのに利用● 定価20万強● 48ポート -> L3スイッチを通るトラフィックが減少● L3スイッチのとの間でリンクアグリゲーション (L2 ⇔ L3 2G)● mysqlのコネクション接続の失敗が減少した
  46. 46. ドーピングTips集
  47. 47. 少ないハードウェアリソースで捌くコツ1. キャッシュする2. TCP接続しない3. ピンポイントで良い物使う
  48. 48. nginxでローカルキャッシュ ● 画像配信系サーバで実施 ● 参照頻度が高く、種類の少ないファイル(js, css, ランキングサム ネイル, 広告系の画像etc) ● Disk IOが増えがちなのでメモリ増強 + SSD投入 ● nginxの設定でIO減少proxy_temp_path /dev/shm/nginx_proxy_temp;proxy_cache_min_uses 5;
  49. 49. APC + TokyoTyrantで2段キャッシュ● 広告配信系サーバで実施● APC (Apacheのメモリ空間上にキャッシュ、揮発性)● 元々はMemcahed(unix domain soket)を使っていた● DL120G6でピーク時 1200req / sec (1台あたり、まだ余裕)
  50. 50. APC + TokyoTyrantで2段キャッシュ APC > Key Value Store (Unix Domain Socket) > Key Value Store (TCP) >>>>>>>越えられない壁>>>>>>> MySQL
  51. 51. memagentで持続的接続● セッション用KVS、APサーバ間等で利用● TCPの持続的接続● コネクション数の節約
  52. 52. Intel NIC EXPI9301CT● オフィスサーバルーム時代に大活躍● 3500円くらい● LVS、画像のフロントサーバなどに利用● インテルは強い子
  53. 53. Broadcom BCM5709● LVSで利用● 1万● on Ubuntu 10.10 にて CPUコア分散● generic-receive-offloadをoffにしている MTUサイズを越えるSQLクエリーの再送が頻発 $ ethtool -k eth0
  54. 54. MTU 6144● いわゆるジャンボフレーム● できないNICもままあるので注意● 大きいファイルの転送などには効果あり● 黒魔術系 (リブート病、再送の頻発)
  55. 55. RealSSDシリーズ● メモリには乗り切らない...でもDisk IOが多い所 に利用● 画像キャッシュサーバ、DBスレーブ● ラックマウントサーバの3.5インチベイでもなん とか使えるかも
  56. 56. Secure Erase● SSDは書き込みを繰り返すと劣化 -> Disk IO が酷い事に● Secure Erase (完全消去) を実行● 結構劇的な効果あり
  57. 57. 近況と今後の展望
  58. 58. 近況と今後の展望● 全文検索をTorittonからSolrへ切り替え ○ インデックス生成バッチ処理にscala● Key Value Store を Kyoto Tycoonへ● ドーピング的な最適化から緻密な最適化へ ○ パケットのdump ○ ログ集計、負荷の可視化 ○ slow queryの条件を厳しく ○ オープンソースの挙動を追う  ○ メンテナンスセグメント構築
  59. 59. 近況と今後の展望 2● 管理コスト減 ○ フレームワークの導入 (rails, silex) ○ 開発、デプロイ方法の整備 ○ 監視設定の整備、自動化● データ、ログ解析 ○ レコメンデーション ○ 最適化 ○ ユーザの動向の把握● 海外展開に向けてCDNとかディザスタとか
  60. 60. まとめ● 安くても良い物はたくさんある● でも限界もやっぱりある● 要は適材適所、ケースバイケース● リソースの制限はエンジニアの成長を促す● なんだかんだで自作(選択肢が制限されな い、自由)というのは存分にメリットあり
  61. 61. では一緒に働いてくれるエンジニアを募集しています http://recruit.pixiv.net/
  62. 62. ご静聴ありがとうございました

×