狠狠撸

狠狠撸Share a Scribd company logo
HHVM on CentOS6
本番運用の
うまみとつらみ
HHVM処理系の構築?運用に関する話です
Hack言語は出てきません...
自己紹介
? 桑折 慧(KORI Kei)
? @2k0ri
? 株式会社オークファン 新卒2年目
? インフラ?運用、DevOps(1年半)
? 分析基盤開発に異動(4ヶ月目)
HHVM導入の経緯
? 先輩マネージャー「HHVMにしたら超早くなった」
? Ubuntu+HHVMにレガシーシステムを引っ越しただけで
チューニングが完了した
? リビルドプロジェクトが立ち上がる
? Ubuntu換装はハードルが高いが
HHVMへの換装はワンチャンあるのでは...?
導入サービス
aucfan.com
1. スマートフォン版
2. PC版の一部ページ(落札相場検索、商品詳細)
? CentOS 6.7, nginx, HHVM 3.5.0
? FuelPHP 1.7.2
3. オウンドメディア(オクトピ)
? Wordpress
それぞれが単独のアプリケーションとして稼働
最上流のnginxでURL/UAを元にリバースプロキシ
インストールまで
? FB社の公式パッケージ提供はdpkg形式のみ
? CentOS6向けのrpmは下記の野良リポジトリがある
? hop5(HHVM 3.0.1)
? gleez(HHVM 3.5.0)
インストールまで
? gleezのお粗末なところをchefで吸収
? mysql周辺の2バージョンにまたがる依存に追随
? remiから消失している依存パッケージを別途調達
? initスクリプトを修正
chefコード片/.iniのgist: https://git.io/vzWOO
開発機への工夫
? 言語はPHPのまま、処理系のみをHHVMに移行する計画
? 開発機(Vagrant)にはPHP5.6(php-fpm)とHHVMを両方構築
? バーチャルホストで別のfastcgiソケットに着信
? 処理系固有のバグを踏んでもすぐに戻れるように
http://php.dev.vagrant.aucfan.com/...
http://hhvm.dev.vagrant.aucfan.com/...
pros
うまみ
早い
2021ms -> 907ms
611ms -> 354ms
230ms -> 100ms
PHPコードに手を加える必要がない
開発リソースを使わず、インフラのみで高速化できる
いざとなれば一手戻れる(Hackに移行しない限り)
ピーク時LAが2/3ほどに
→1台での同時リクエスト数がアップ
→コスト減
cons
つらみ
Xdebug対応が不十分
? xdebug.オプションはある
? が、3.5.0とPHPStormでは動作せず
すごいレアケースでパーサの挙動が違った
<?php//echo "sample" ;?>
? ↑ PHP works, HHVM returns syntax error
? PHPのやわらかさに改めて驚かされる
ログが滅多に出てこない
? PHPより頻繁に画面が真っ白なまま
? hhvm.log.level=Verboseでもエラーログが無言のケースが
多々ある
? 今でも极稀に原因不明のスタックが起きる
memcachedを使うとhphp_invoke(500)
? 原因不明のセグメンテーション違反
? HHVMアップデートの道は閉ざされているので
FuelのCacheドライバを変更
? memcached → Redis
? OS/バージョン固有のバグであって欲しい
? FB社はmemcachedヘビーユーザだし...
12回目のアクセスから500になる
? FuelPHP × php-pdo × HHVMで発生
? FuelのDBドライバがJITにかけられた途端動かなくなった
? fuel/core/classes/database/connection.php L60付近
+ // https://github.com/facebook/hhvm/issues/2011#issuecomment-58767200
+ settype($name, 'string');
if ( ! $writable and ($readonly = Config::get('db.'.$name.'.readonly', false)))
{
! isset(static::$_readonly[$name]) and static::$_readonly[$name] = Arr::get($readonly, array_rand($readonly));
惜しいところ
hhvm.repo.authoritative
? PHPファイル全部を事前(AOT)コンパイル、高速化するオプシ
ョン
? FBのチューニングマニュアルにはコレで20%改善とある
? FuelPHP1.7.2でやろうとするとセグメンテーション違反に
? 惜しい
今后の方针
結局...
? HHVMのメリットを最大限享受するにはCentOS6はやっぱり
もったいない
? 最新バージョンを使えないのは脆弱性対策としても不安
? 後述の理由もある
? →Ubuntu移設進行中
いざとなれば一手戻れる(Hackに移行してなければ)
HHVM -> PHP5.6の可能性
? 運用ノウハウがネットに少ないのがやはり一番の不安材料
? どうしようもないバグにぶつかった時に
nginx1行で振り戻せる状態にしておく
hhvm.php7.all
? HHVMのphp7シンタックス対応オプション(3.11.0~)
? コード?処理系両面でphp7化を視野に
→HHVM <-> PHP7ワンチャンあるのでは...?
まとめ
? PHP on HHVMは結構お得でした
? いざとなれば戻れる(PHP7以降も?)
? 情報は少ない、地雷は踏み抜かれる
? FuelPHPでなければもう少し楽かもしれません
ご清聴ありがとうございました

More Related Content

What's hot (20)

PPTX
贬补肠办言语に赌けたチームの话
Yuji Otani
?
PDF
まだタスクランナー使っていないって本当(マジ)? 仕事に対する効率化意識向上のための gulp ハンズオン : Wordcamp tokyo 2015
Hiromu Hasegawa
?
PDF
エンタープライズパッケージを利用しました?HTML Exporter編?
Yuzuru Sano
?
PDF
业务系奥别产アプリケーションが厂迟谤耻迟蝉から旅立つ日
Mitsuru Ogawa
?
PPTX
日本で一番笔贬笔のシステムをテストしている手动テスターが思うところ:笔贬笔カンファレンス福冈
Rina Fukuda
?
PDF
非エンジニアのためのこれだけは押さえておきたい奥贰叠サービスの基础技术
div Inc
?
PDF
第4回concrete5京都勉強会 ?まだまだ遅くない!基礎からガッチリ使いこなそうconcrete5?
Yuzuru Sano
?
PDF
OWIN - .NETにおけるPSGI -
将 高野
?
PDF
安全なテーマ作成のための笔贬笔の知识
Fumito Mizuno
?
PPTX
案件で使えるプラグイン特集
優也 田島
?
PDF
CLR/H#74 LT IT勉強会発表用イチオシツール
Jun-ichi Sakamoto
?
PDF
チラ見せ?ナイト@20150410 LT公開用
Keisuke Utsumi
?
PDF
魅せるPowerPointビジネスプレゼン【入門編】先生:河合 浩之
schoowebcampus
?
PDF
デザイナーのためのはじめて笔贬笔 ~颁辞诲别虫、どう使いこなす?~
takenao
?
PDF
ディレクタ兼エンジニアの仕事@Creators MeetUp #36
Erina Takei
?
PDF
非エンシ?ニアカンファレンス资料の抜粋
div Inc
?
PPTX
骋颈迟入门
小川 昌吾
?
PDF
アプリ開発を効率化する 方法あれこれ
Atsushi Mizoue
?
PDF
C#でアプリを作ってみよう! #ngtnet
将 高野
?
PDF
Backlog初心者の学習のためあえて課題を「たらい回し」してみた - JBUG福岡 #10 Backlogの使い方に悩んでいる方へ
Yasuo Kozasa
?
贬补肠办言语に赌けたチームの话
Yuji Otani
?
まだタスクランナー使っていないって本当(マジ)? 仕事に対する効率化意識向上のための gulp ハンズオン : Wordcamp tokyo 2015
Hiromu Hasegawa
?
エンタープライズパッケージを利用しました?HTML Exporter編?
Yuzuru Sano
?
业务系奥别产アプリケーションが厂迟谤耻迟蝉から旅立つ日
Mitsuru Ogawa
?
日本で一番笔贬笔のシステムをテストしている手动テスターが思うところ:笔贬笔カンファレンス福冈
Rina Fukuda
?
非エンジニアのためのこれだけは押さえておきたい奥贰叠サービスの基础技术
div Inc
?
第4回concrete5京都勉強会 ?まだまだ遅くない!基礎からガッチリ使いこなそうconcrete5?
Yuzuru Sano
?
OWIN - .NETにおけるPSGI -
将 高野
?
安全なテーマ作成のための笔贬笔の知识
Fumito Mizuno
?
案件で使えるプラグイン特集
優也 田島
?
CLR/H#74 LT IT勉強会発表用イチオシツール
Jun-ichi Sakamoto
?
チラ見せ?ナイト@20150410 LT公開用
Keisuke Utsumi
?
魅せるPowerPointビジネスプレゼン【入門編】先生:河合 浩之
schoowebcampus
?
デザイナーのためのはじめて笔贬笔 ~颁辞诲别虫、どう使いこなす?~
takenao
?
ディレクタ兼エンジニアの仕事@Creators MeetUp #36
Erina Takei
?
非エンシ?ニアカンファレンス资料の抜粋
div Inc
?
骋颈迟入门
小川 昌吾
?
アプリ開発を効率化する 方法あれこれ
Atsushi Mizoue
?
C#でアプリを作ってみよう! #ngtnet
将 高野
?
Backlog初心者の学習のためあえて課題を「たらい回し」してみた - JBUG福岡 #10 Backlogの使い方に悩んでいる方へ
Yasuo Kozasa
?

Viewers also liked (20)

PDF
超高速WordPress ~ PHP7 vs HHVM vs PHP5.6
Kengyu Nakamura
?
PDF
翱厂厂で楽に作る骋辞言语クライアントツール
Tano Makoto
?
PDF
贵颈苍迟别肠丑研究所『2016年振り返り』
Toshio Taki
?
PPTX
Why choose Hack/HHVM over PHP7
Yuji Otani
?
PPTX
笔贬笔バージョン别応答速度比较
Takayuki Saito
?
PDF
安全な笔贬笔アプリケーションの作り方2013
Hiroshi Tokumaru
?
PPTX
惭补谤颈补顿叠+骋补濒别谤补颁濒耻蝉迟别谤の运用事例(惭测厂蚕尝勉强会2016-01-28)
Yuji Otani
?
PDF
[Azure Deep Dive] APIエコノミーに向けて ~Azure API ManagementによるAPIの公開と管理~ (2016/12/16)
Naoki (Neo) SATO
?
PPTX
セキュアコーディング方法论再构筑の试み
Hiroshi Tokumaru
?
PPTX
Neo4j の「データ操作プログラミング」から 「ビジュアライズ」まで
Keiichiro Seida
?
PPTX
「技术のインテリジェンスを创る」をどうやって実现するか
Yuji Otani
?
PDF
figo at API Days 2016 in Paris
Lars Markull
?
PDF
础奥厂マネージドサービスをフル活用したヘルスケア滨辞罢プラットフォーム
Hiroki Takeda
?
PDF
Memcache basics on google app engine
Ido Green
?
PDF
惭测厂蚕尝アンチパターン
yoku0825
?
PDF
认定スクラムマスター研修に行ってきました
Hajime Yanagawa
?
PDF
OAuth2.0によるWeb APIの保護
Naohiro Fujie
?
PDF
Presto - Hadoop Conference Japan 2014
Sadayuki Furuhashi
?
PDF
170311 JAWS days 2017 fintech
Toshihide Atsumi
?
PDF
Introducing Ballerina
WSO2
?
超高速WordPress ~ PHP7 vs HHVM vs PHP5.6
Kengyu Nakamura
?
翱厂厂で楽に作る骋辞言语クライアントツール
Tano Makoto
?
贵颈苍迟别肠丑研究所『2016年振り返り』
Toshio Taki
?
Why choose Hack/HHVM over PHP7
Yuji Otani
?
笔贬笔バージョン别応答速度比较
Takayuki Saito
?
安全な笔贬笔アプリケーションの作り方2013
Hiroshi Tokumaru
?
惭补谤颈补顿叠+骋补濒别谤补颁濒耻蝉迟别谤の运用事例(惭测厂蚕尝勉强会2016-01-28)
Yuji Otani
?
[Azure Deep Dive] APIエコノミーに向けて ~Azure API ManagementによるAPIの公開と管理~ (2016/12/16)
Naoki (Neo) SATO
?
セキュアコーディング方法论再构筑の试み
Hiroshi Tokumaru
?
Neo4j の「データ操作プログラミング」から 「ビジュアライズ」まで
Keiichiro Seida
?
「技术のインテリジェンスを创る」をどうやって実现するか
Yuji Otani
?
figo at API Days 2016 in Paris
Lars Markull
?
础奥厂マネージドサービスをフル活用したヘルスケア滨辞罢プラットフォーム
Hiroki Takeda
?
Memcache basics on google app engine
Ido Green
?
惭测厂蚕尝アンチパターン
yoku0825
?
认定スクラムマスター研修に行ってきました
Hajime Yanagawa
?
OAuth2.0によるWeb APIの保護
Naohiro Fujie
?
Presto - Hadoop Conference Japan 2014
Sadayuki Furuhashi
?
170311 JAWS days 2017 fintech
Toshihide Atsumi
?
Introducing Ballerina
WSO2
?
Ad

Similar to HHVM on CentOS6 本番運用のうまみとつらみ (11)

PDF
Drupal on vagrant-aws
Tomoki Hasegawa
?
PDF
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
Hikari Fukasawa
?
PDF
HHVM Hack
Masaaki Yonebayashi
?
PDF
贬贬痴惭/贬补肠办を本番投入した话
Kenjiro Kubota
?
PDF
【dots. IT勉強会】開発環境のDocker化
Yuki Kanazawa
?
PPTX
LinAction Theme Docker
cyberblack28 Ichikawa
?
PDF
笔贬笔カンファレンス2014の恳亲会飞び込み尝罢资料
Junichi Ishida
?
PPTX
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
cyberblack28 Ichikawa
?
PDF
New configuration of Erogamescape
hiroin0
?
PDF
コンテナ情报交换会2
Masahide Yamamoto
?
PDF
Introducing hhvm hack-async
Kenjiro Kubota
?
Drupal on vagrant-aws
Tomoki Hasegawa
?
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
Hikari Fukasawa
?
贬贬痴惭/贬补肠办を本番投入した话
Kenjiro Kubota
?
【dots. IT勉強会】開発環境のDocker化
Yuki Kanazawa
?
LinAction Theme Docker
cyberblack28 Ichikawa
?
笔贬笔カンファレンス2014の恳亲会飞び込み尝罢资料
Junichi Ishida
?
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
cyberblack28 Ichikawa
?
New configuration of Erogamescape
hiroin0
?
コンテナ情报交换会2
Masahide Yamamoto
?
Introducing hhvm hack-async
Kenjiro Kubota
?
Ad

Recently uploaded (6)

PPTX
[Liberaware] Engineer Summer Internship.pptx
koyamakohei
?
PDF
React Native vs React Lynx (React Native Meetup #22)
Taiju Muto
?
PDF
【础滨罢搁滨翱厂】人惫蝉生成础滨でジェスチャーゲームを础滨罢滨搁翱厂を使ってしてみた
ueda0116
?
PDF
AWS BedrockによるIoT実装例紹介とAI進化の展望@AWS Summit ExecLeaders Scale Session
Osaka University
?
PDF
フィシ?カル础滨时代のセキュリティ:ロホ?ティクスと础滨セキュリティの融合のあり方
Osaka University
?
PDF
音学シンポジウム2025 招待讲演 远隔会话音声认识のための音声强调フロントエント?:概要と我々の取り组み
Tsubasa Ochiai
?
[Liberaware] Engineer Summer Internship.pptx
koyamakohei
?
React Native vs React Lynx (React Native Meetup #22)
Taiju Muto
?
【础滨罢搁滨翱厂】人惫蝉生成础滨でジェスチャーゲームを础滨罢滨搁翱厂を使ってしてみた
ueda0116
?
AWS BedrockによるIoT実装例紹介とAI進化の展望@AWS Summit ExecLeaders Scale Session
Osaka University
?
フィシ?カル础滨时代のセキュリティ:ロホ?ティクスと础滨セキュリティの融合のあり方
Osaka University
?
音学シンポジウム2025 招待讲演 远隔会话音声认识のための音声强调フロントエント?:概要と我々の取り组み
Tsubasa Ochiai
?

HHVM on CentOS6 本番運用のうまみとつらみ