Submit Search
HHVM on CentOS6 本番運用のうまみとつらみ
4 likes
4,866 views
Kei KORI
HHVM/Hack言語勉強会#1 https://atnd.org/events/72169
Engineering
Read more
1 of 25
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
More Related Content
PDF
HTML5 Experts.jp パフォーマンス・チューニング
Yusuke Naka
PPTX
PHP7ではなくHack/HHVMを選ぶ理由
Yuji Otani
PPTX
FuelPHP × HHVM サービス開発事例
Yuji Otani
PPTX
人の言うことを簡単に信じるな!
Mitsuo Kawashima
PPTX
マークアップの作業効率をあげよう!
Mitsuo Kawashima
PDF
PHP カンファレンス福岡 2017 参加報告
y-uti
PPTX
PHP7がリリースされたいま、 改めてHackについて考える。
Yuji Otani
PPTX
Hack+FuelPHPによるWebサービス開発
Yuji Otani
HTML5 Experts.jp パフォーマンス・チューニング
Yusuke Naka
PHP7ではなくHack/HHVMを選ぶ理由
Yuji Otani
FuelPHP × HHVM サービス開発事例
Yuji Otani
人の言うことを簡単に信じるな!
Mitsuo Kawashima
マークアップの作業効率をあげよう!
Mitsuo Kawashima
PHP カンファレンス福岡 2017 参加報告
y-uti
PHP7がリリースされたいま、 改めてHackについて考える。
Yuji Otani
Hack+FuelPHPによるWebサービス開発
Yuji Otani
What's hot
(20)
PPTX
Hack言語に賭けたチームの話
Yuji Otani
PDF
まだタスクランナー使っていないって本当(マジ)? 仕事に対する効率化意識向上のための gulp ハンズオン : Wordcamp tokyo 2015
Hiromu Hasegawa
PDF
エンタープライズパッケージを利用しました〜HTML Exporter編〜
Yuzuru Sano
PDF
業務系WebアプリケーションがStrutsから旅立つ日
Mitsuru Ogawa
PPTX
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡
Rina Fukuda
PDF
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
div Inc
PDF
第4回concrete5京都勉強会 〜まだまだ遅くない!基礎からガッチリ使いこなそうconcrete5〜
Yuzuru Sano
PDF
OWIN - .NETにおけるPSGI -
将 高野
PDF
安全なテーマ作成のためのPHPの知識
Fumito Mizuno
PPTX
案件で使えるプラグイン特集
優也 田島
PDF
CLR/H#74 LT IT勉強会発表用イチオシツール
Jun-ichi Sakamoto
PDF
チラ見せ♡ナイト@20150410 LT公開用
Keisuke Utsumi
PDF
魅せるPowerPointビジネスプレゼン【入門編】先生:河合 浩之
schoowebcampus
PDF
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
takenao
PDF
ディレクタ兼エンジニアの仕事@Creators MeetUp #36
Erina Takei
PDF
非エンジニアカンファレンス資料の抜粋
div Inc
PPTX
Git入門
小川 昌吾
PDF
アプリ開発を効率化する 方法あれこれ
Atsushi Mizoue
PDF
C#でアプリを作ってみよう! #ngtnet
将 高野
PDF
Backlog初心者の学習のためあえて課題を「たらい回し」してみた - JBUG福岡 #10 Backlogの使い方に悩んでいる方へ
Yasuo Kozasa
Hack言語に賭けたチームの話
Yuji Otani
まだタスクランナー使っていないって本当(マジ)? 仕事に対する効率化意識向上のための gulp ハンズオン : Wordcamp tokyo 2015
Hiromu Hasegawa
エンタープライズパッケージを利用しました〜HTML Exporter編〜
Yuzuru Sano
業務系WebアプリケーションがStrutsから旅立つ日
Mitsuru Ogawa
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡
Rina Fukuda
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
div Inc
第4回concrete5京都勉強会 〜まだまだ遅くない!基礎からガッチリ使いこなそうconcrete5〜
Yuzuru Sano
OWIN - .NETにおけるPSGI -
将 高野
安全なテーマ作成のためのPHPの知識
Fumito Mizuno
案件で使えるプラグイン特集
優也 田島
CLR/H#74 LT IT勉強会発表用イチオシツール
Jun-ichi Sakamoto
チラ見せ♡ナイト@20150410 LT公開用
Keisuke Utsumi
魅せるPowerPointビジネスプレゼン【入門編】先生:河合 浩之
schoowebcampus
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
takenao
ディレクタ兼エンジニアの仕事@Creators MeetUp #36
Erina Takei
非エンジニアカンファレンス資料の抜粋
div Inc
Git入門
小川 昌吾
アプリ開発を効率化する 方法あれこれ
Atsushi Mizoue
C#でアプリを作ってみよう! #ngtnet
将 高野
Backlog初心者の学習のためあえて課題を「たらい回し」してみた - JBUG福岡 #10 Backlogの使い方に悩んでいる方へ
Yasuo Kozasa
Ad
Viewers also liked
(20)
PDF
超高速WordPress ~ PHP7 vs HHVM vs PHP5.6
Kengyu Nakamura
PDF
OSSで楽に作るGo言語クライアントツール
Tano Makoto
PDF
Fintech研究所『2016年振り返り』
Toshio Taki
PPTX
Why choose Hack/HHVM over PHP7
Yuji Otani
PPTX
PHPバージョン別応答速度比較
Takayuki Saito
PDF
安全なPHPアプリケーションの作り方2013
Hiroshi Tokumaru
PPTX
MariaDB+GaleraClusterの運用事例(MySQL勉強会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
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
Hiroki Takeda
PDF
Memcache basics on google app engine
Ido Green
PDF
MySQLアンチパターン
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
OSSで楽に作るGo言語クライアントツール
Tano Makoto
Fintech研究所『2016年振り返り』
Toshio Taki
Why choose Hack/HHVM over PHP7
Yuji Otani
PHPバージョン別応答速度比較
Takayuki Saito
安全なPHPアプリケーションの作り方2013
Hiroshi Tokumaru
MariaDB+GaleraClusterの運用事例(MySQL勉強会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
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
Hiroki Takeda
Memcache basics on google app engine
Ido Green
MySQLアンチパターン
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 本番運用のうまみとつらみ
(20)
PPTX
Nutanixを導入してみて思ったこと(仮)
Kazuhito Ohkawa
PPTX
エンジニアという職業について
Hisatoshi Kikumoto
PPTX
PHPで並列処理する ライブラリを作った
Hironobu Saitoh
PDF
Apache Hiveの今とこれから - 2016
Yuta Imai
PDF
リリース対象どーれだっ??
__Black
PDF
配布用Cacti running with cherokee
yut148atgmaildotcom
PDF
HP Helion 標準搭載!! OpenStack TripleO解説課題 – OpenStack最新情報セミナー 2015年2月
VirtualTech Japan Inc.
PDF
Linux+Xenによるサーバ仮想化構築事例セミナー
VirtualTech Japan Inc.
PDF
あなたの安心を高速に守る Container-based CI
Wataru MIYAGUNI
PDF
HBase Meetup Tokyo Summer 2015 #hbasejp
Cloudera Japan
PDF
TranslimitのChatOps事情と愉快なbotたち
Masakazu Matsushita
PDF
8時間耐久 PHP構築の教室
Yusuke Ando
PDF
Fn project爆誕
Hiroshi Hayakawa
PDF
Heroku で作る スケーラブルな PHP アプリケーション
Masashi Shinbara
PDF
ネットワン様講演 OpenStack最新情報セミナー 2014年8月
VirtualTech Japan Inc.
PPTX
PHPべんちまーく
chichi1091
PDF
JSUG20171027-spfingboot-k8s-ocp
Nobuhiro Sue
PPTX
cluster-monitoringで困ったこと学んだこと
Sachiho Wakita
PDF
PowerShell を使用した Hyper-V の管理
Kazuki Takai
PDF
PHP カンファレンス福岡 参加報告
y-uti
Nutanixを導入してみて思ったこと(仮)
Kazuhito Ohkawa
エンジニアという職業について
Hisatoshi Kikumoto
PHPで並列処理する ライブラリを作った
Hironobu Saitoh
Apache Hiveの今とこれから - 2016
Yuta Imai
リリース対象どーれだっ??
__Black
配布用Cacti running with cherokee
yut148atgmaildotcom
HP Helion 標準搭載!! OpenStack TripleO解説課題 – OpenStack最新情報セミナー 2015年2月
VirtualTech Japan Inc.
Linux+Xenによるサーバ仮想化構築事例セミナー
VirtualTech Japan Inc.
あなたの安心を高速に守る Container-based CI
Wataru MIYAGUNI
HBase Meetup Tokyo Summer 2015 #hbasejp
Cloudera Japan
TranslimitのChatOps事情と愉快なbotたち
Masakazu Matsushita
8時間耐久 PHP構築の教室
Yusuke Ando
Fn project爆誕
Hiroshi Hayakawa
Heroku で作る スケーラブルな PHP アプリケーション
Masashi Shinbara
ネットワン様講演 OpenStack最新情報セミナー 2014年8月
VirtualTech Japan Inc.
PHPべんちまーく
chichi1091
JSUG20171027-spfingboot-k8s-ocp
Nobuhiro Sue
cluster-monitoringで困ったこと学んだこと
Sachiho Wakita
PowerShell を使用した Hyper-V の管理
Kazuki Takai
PHP カンファレンス福岡 参加報告
y-uti
HHVM on CentOS6 本番運用のうまみとつらみ
1.
HHVM on CentOS6 本番運用の うまみとつらみ
2.
HHVM処理系の構築・運用に関する話です Hack言語は出てきません...
3.
自己紹介 • 桑折 慧(KORI
Kei) • @2k0ri • 株式会社オークファン 新卒2年目 • インフラ・運用、DevOps(1年半) • 分析基盤開発に異動(4ヶ月目)
4.
HHVM導入の経緯 • 先輩マネージャー「HHVMにしたら超早くなった」 • Ubuntu+HHVMにレガシーシステムを引っ越しただけで チューニングが完了した •
リビルドプロジェクトが立ち上がる • Ubuntu換装はハードルが高いが HHVMへの換装はワンチャンあるのでは...?
5.
導入サービス aucfan.com
6.
1. スマートフォン版 2. PC版の一部ページ(落札相場検索、商品詳細) •
CentOS 6.7, nginx, HHVM 3.5.0 • FuelPHP 1.7.2 3. オウンドメディア(オクトピ) • Wordpress それぞれが単独のアプリケーションとして稼働 最上流のnginxでURL/UAを元にリバースプロキシ
7.
インストールまで • FB社の公式パッケージ提供はdpkg形式のみ • CentOS6向けのrpmは下記の野良リポジトリがある •
hop5(HHVM 3.0.1) • gleez(HHVM 3.5.0)
8.
インストールまで • gleezのお粗末なところをchefで吸収 • mysql周辺の2バージョンにまたがる依存に追随 •
remiから消失している依存パッケージを別途調達 • initスクリプトを修正 chefコード片/.iniのgist: https://git.io/vzWOO
9.
開発機への工夫 • 言語はPHPのまま、処理系のみをHHVMに移行する計画 • 開発機(Vagrant)にはPHP5.6(php-fpm)とHHVMを両方構築 •
バーチャルホストで別のfastcgiソケットに着信 • 処理系固有のバグを踏んでもすぐに戻れるように http://php.dev.vagrant.aucfan.com/... http://hhvm.dev.vagrant.aucfan.com/...
10.
pros うまみ
11.
早い 2021ms -> 907ms 611ms
-> 354ms 230ms -> 100ms
12.
PHPコードに手を加える必要がない 開発リソースを使わず、インフラのみで高速化できる いざとなれば一手戻れる(Hackに移行しない限り)
13.
ピーク時LAが2/3ほどに →1台での同時リクエスト数がアップ →コスト減
14.
cons つらみ
15.
Xdebug対応が不十分 • xdebug.オプションはある • が、3.5.0とPHPStormでは動作せず すごいレアケースでパーサの挙動が違った <?php//echo
"sample" ;?> • ↑ PHP works, HHVM returns syntax error • PHPのやわらかさに改めて驚かされる
16.
ログが滅多に出てこない • PHPより頻繁に画面が真っ白なまま • hhvm.log.level=Verboseでもエラーログが無言のケースが 多々ある •
今でも極稀に原因不明のスタックが起きる
17.
memcachedを使うとhphp_invoke(500) • 原因不明のセグメンテーション違反 • HHVMアップデートの道は閉ざされているので FuelのCacheドライバを変更 •
memcached → Redis • OS/バージョン固有のバグであって欲しい • FB社はmemcachedヘビーユーザだし...
18.
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));
19.
惜しいところ hhvm.repo.authoritative • PHPファイル全部を事前(AOT)コンパイル、高速化するオプシ ョン • FBのチューニングマニュアルにはコレで20%改善とある •
FuelPHP1.7.2でやろうとするとセグメンテーション違反に • 惜しい
20.
今後の方針
21.
結局... • HHVMのメリットを最大限享受するにはCentOS6はやっぱり もったいない • 最新バージョンを使えないのは脆弱性対策としても不安 •
後述の理由もある • →Ubuntu移設進行中
22.
いざとなれば一手戻れる(Hackに移行してなければ) HHVM -> PHP5.6の可能性 •
運用ノウハウがネットに少ないのがやはり一番の不安材料 • どうしようもないバグにぶつかった時に nginx1行で振り戻せる状態にしておく
23.
hhvm.php7.all • HHVMのphp7シンタックス対応オプション(3.11.0~) • コード・処理系両面でphp7化を視野に →HHVM
<-> PHP7ワンチャンあるのでは...?
24.
まとめ • PHP on
HHVMは結構お得でした • いざとなれば戻れる(PHP7以降も?) • 情報は少ない、地雷は踏み抜かれる • FuelPHPでなければもう少し楽かもしれません
25.
ご清聴ありがとうございました
Download