Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
hbstudy#25

ピクシブ株式会社   飯田 祐基
アジェンダ

● 紹介
● はじめに
● Before
● After
● ドーピングTips集
● 近況と今後の展望
紹介
自己紹介

● 飯田 祐基 (@semind)
● もうすぐ三十路
● もうすぐpixivに来て2年 (インフラ部隊)
● 前職はプロバイダ (I○J)
● ネットワーク、広告配信、画像配信、データセ
  ンタ
● リクルータみたいなことも
● コーディングもサーバもネットワークも配線も
● 最近の興味はrails, coffeescript, html5, css3
hbstudy25 劇的ビフォーアフター
イラストを中心としたSNSサービス
WEB+DB PRESS Vol.63
絶賛発売中! (pixivのこれまでの歴史)
もっと掘り下げて詳しく!
そして何か一つでも実践できるものを見つけて
  いただければ!が今日のテーマです
はじめに
弊社システムの特徴
   それは....
自作サーバ!
なんでこんな事してんの?
 安いからに決まってまんがな
人件費...管理コスト...
黙らっしゃい!
ない袖は振れない
色々大丈夫なの?
          案外いけます
(でもBtoBとかではやらない方が良いと思います)
すぐ壊れたりしないの?
        そうでもないです

● 200台強でディスク故障が数回/年
● 意外とNICがダメになりやすい (1回/月未満)
● その他のパーツも月1回あるかないか
捌ききれるの?
そこは努力が必要です
捌くための努力
        大きく2パターン

● 積むもの積む(ハードウェア増強)
  => コスト大
● 積むもの積まない (最適化) 
  => コスト小
積まない!
積んだら負けかなと思ってる
(最近は積むとこは積んでる)
積まずに済ます努力
       当然やってます!

● プログラムの最適化 
● ミドルウェアの選定、チューニング
安いものを限界まで使う
  安いものを限界まで使う
   (性能を引き出す)
大丈夫....?
心配性はインフラエンジニアには大事な素養
hbstudy25 劇的ビフォーアフター
大改造!!劇的ビフォーアフター
 – pixivを通り抜けたハードウェアたち –
Before
- 自社オフィスルームでの運用 -
ベニヤ(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
パーツ(機器)を選ぶ基準

● 安い!
● 消費電力が少ない (かなり重要)
● 基本同じものを揃える
● 用途に合わせて一部良い物を使ったりする
● 機能要件と値段を天秤に
ラック
  ルミナスホームラック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板




      懺悔のお言葉
たわむ
実際運用してて感じた事
● まとめて調達するのは難しい 
● 家電量販店でも値切れる
● 販売停止のサイクルが早くて困る
● ロット単位ではずれ引いたりする
● 思ったよりも荒い扱いしても大丈夫 (市販品
  でも質は高い)
● 配線が結構面倒 & 酷くなりがち
● 物理的に違うホストと間違えやすい
● NICが壊れる
● Realtekは弱い (でも実績で270Mbpsは出た)
● 新しいパーツを直ぐ試せる (SSDとか)
悩みどころ(限界)

● L3スイッチは比較的高価なのでL2でカスケー
  ド繰り返してたらアドレスが足りなくなった &
  輻輳が酷くなった
● 共用の回線を沢山引いていたら(外→室内
  の)ファイバを通す余裕がもうないと言われた
● 電源まわりが非常に不安
● セキュリティ的にも非常に不安
● リモートで電源操作できないのは不便
● 正直地震は怖かった
hbstudy25 劇的ビフォーアフター
After
- データセンタでの運用 -
データセンタ移行

● 建物的なキャパの限界
● 局舎側のキャパの限界
● ネットワーク(輻輳)の改善
● 移行に伴い浮いたハードウェアリソースを利
  用して配線等を見直し
● (色んな意味で)信頼性の向上
● ハイブリッド構成
スパゲッティーコード(笑)
meets
L3スイッチ & モール !
hbstudy25 劇的ビフォーアフター
HP A5500-24G E
● VRRPで冗長化 & スパニングツリー
● 定価60万強
● 24ポート Gigabit L3 Layer Switching Hub
● オフィスサーバルーム、データセンタ間の専用線接続
● スター型へトポロジーの変更
● サブネットの分割
● かなりCiscoライクでマニュアルを頑張って読めばなんとかなる
● 元々はH3C社の製品
ルータワー(笑)
meets
IDCフロンティア !
 ● 契約帯域 Max 8Gbps !
 ● 4ラック 100台強稼動
 ● コアな機能はほぼすでにこちらで動いている
 ● 会社から近い
 ● 外側のスイッチの運用はお任せしている
 ● データセンタ移行記
   http://dev.pixiv.net/archives/1140352.html
 ● 6GbpsをさばくオレオレCDN構築術
   http://www.slideshare.net/semind/20101220-pixiv-techmeeting-6267332
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
● アプリケーションサーバとして利用
● ベニヤサーバ16台分 (CPUコア数ベース)
http://www.supermicro.com.tw/Aplus/system/2U/2022/AS-2022TG-HTRF.cfm
HP ProCurve Switch 2510G-48
● 各ラックのLANを受けるのに利用
● 定価20万強
● 48ポート -> L3スイッチを通るトラフィックが減少
● L3スイッチのとの間でリンクアグリゲーション (L2 ⇔ L3 2G)
● mysqlのコネクション接続の失敗が減少した
ドーピングTips集
少ないハードウェアリソースで捌くコツ




1. キャッシュする
2. TCP接続しない
3. ピンポイントで良い物使う
nginxでローカルキャッシュ
  ● 画像配信系サーバで実施
  ● 参照頻度が高く、種類の少ないファイル(js, css, ランキングサム
    ネイル, 広告系の画像etc)
  ● Disk IOが増えがちなのでメモリ増強 + SSD投入
  ● nginxの設定でIO減少
proxy_temp_path /dev/shm/nginx_proxy_temp;
proxy_cache_min_uses 5;
APC + TokyoTyrantで2段キャッシュ

● 広告配信系サーバで実施
● APC (Apacheのメモリ空間上にキャッシュ、揮発性)
● 元々はMemcahed(unix domain soket)を使っていた
● DL120G6でピーク時 1200req / sec (1台あたり、まだ余裕)
APC + TokyoTyrantで2段キャッシュ

                  APC
                    >

   Key Value Store (Unix Domain Socket)
                    >

          Key Value Store (TCP)
        >>>>>>>越えられない壁>>>>>>>

                 MySQL
memagentで持続的接続
● セッション用KVS、APサーバ間等で利用
● TCPの持続的接続
● コネクション数の節約
Intel NIC EXPI9301CT
● オフィスサーバルーム時代に大活躍
● 3500円くらい
● LVS、画像のフロントサーバなどに利用
● インテルは強い子
Broadcom BCM5709
● LVSで利用
● 1万
● on Ubuntu 10.10 にて CPUコア分散
● generic-receive-offloadをoffにしている
 MTUサイズを越えるSQLクエリーの再送が頻発
 $ ethtool -k eth0
MTU 6144
● いわゆるジャンボフレーム
● できないNICもままあるので注意
● 大きいファイルの転送などには効果あり
● 黒魔術系 (リブート病、再送の頻発)
RealSSDシリーズ
● メモリには乗り切らない...でもDisk IOが多い所
  に利用
● 画像キャッシュサーバ、DBスレーブ
● ラックマウントサーバの3.5インチベイでもなん
  とか使えるかも
Secure Erase
● SSDは書き込みを繰り返すと劣化 -> Disk IO
  が酷い事に
● Secure Erase (完全消去) を実行
● 結構劇的な効果あり
近況と今後の展望
近況と今後の展望

● 全文検索をTorittonからSolrへ切り替え
  ○ インデックス生成バッチ処理にscala
● Key Value Store を Kyoto Tycoonへ
● ドーピング的な最適化から緻密な最適化へ
  ○ パケットのdump
  ○ ログ集計、負荷の可視化
  ○ slow queryの条件を厳しく
  ○ オープンソースの挙動を追う 
  ○ メンテナンスセグメント構築
近況と今後の展望 2

● 管理コスト減
  ○ フレームワークの導入 (rails, silex)
  ○ 開発、デプロイ方法の整備
  ○ 監視設定の整備、自動化
● データ、ログ解析
  ○ レコメンデーション
  ○ 最適化
  ○ ユーザの動向の把握
● 海外展開に向けてCDNとかディザスタとか
まとめ

● 安くても良い物はたくさんある
● でも限界もやっぱりある
● 要は適材適所、ケースバイケース
● リソースの制限はエンジニアの成長を促す
● なんだかんだで自作(選択肢が制限されな
  い、自由)というのは存分にメリットあり
では一緒に働いてくれるエンジニアを募集しています


     http://recruit.pixiv.net/
ご静聴ありがとうございました

More Related Content

hbstudy25 劇的ビフォーアフター