hbstudy25 劇的ビフォーアフター
DESCRIPTION
TRANSCRIPT
hbstudy#25
ピクシブ株式会社 飯田 祐基
アジェンダ
●紹介●はじめに● Before● After●ドーピングTips集●近況と今後の展望
紹介
自己紹介
●飯田 祐基 (@semind)●もうすぐ三十路●もうすぐpixivに来て2年 (インフラ部隊)●前職はプロバイダ (I○J)●ネットワーク、広告配信、画像配信、データセ
ンタ●リクルータみたいなことも●コーディングもサーバもネットワークも配線も●最近の興味はrails, coffeescript, html5, css3
イラストを中心とした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: GA-MA785GMUS2H
1台あたり5万円弱 (主にビッグカメラで購入)http://www.atmarkit.co.jp/news/201007/21/pixiv.html
パーツ(機器)を選ぶ基準
●安い!●消費電力が少ない (かなり重要)●基本同じものを揃える●用途に合わせて一部良い物を使ったりする●機能要件と値段を天秤に
ラック
20台 / 1ラック東急ハンズで購入
ルミナスホームラック4段90W LH9015-4 (x2) ●¥18,000●ルミナスはエレクタより安価
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でカスケード繰り返してたらアドレスが足りなくなった & 輻輳が酷くなった
●共用の回線を沢山引いていたら(外→室内の)ファイバを通す余裕がもうないと言われた
●電源まわりが非常に不安●セキュリティ的にも非常に不安●リモートで電源操作できないのは不便●正直地震は怖かった
After
- データセンタでの運用 -
データセンタ移行
●建物的なキャパの限界●局舎側のキャパの限界●ネットワーク(輻輳)の改善●移行に伴い浮いたハードウェアリソースを利
用して配線等を見直し● (色んな意味で)信頼性の向上●ハイブリッド構成
スパゲッティーコード(笑)
meets
L3スイッチ & モール !
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とかディザスタとか
まとめ
●安くても良い物はたくさんある●でも限界もやっぱりある●要は適材適所、ケースバイケース●リソースの制限はエンジニアの成長を促す●なんだかんだで自作(選択肢が制限されな
い、自由)というのは存分にメリットあり
ご静聴ありがとうございました