hhvm3.0的坑

最近新架构升级了hhvm版本,从2.2升级到了3.0,运行环境增加了一个虚拟化用的容器,结果遇到一个诡异的现象,在基本相同代码、相同压力下,cpu消耗远大于升级前。

经过仔细排查,虚拟化容器里有不少文件是软链(这是一个兄弟部门的自研容器,有大范围的实际应用),而问题就在hhvm一个叫CheckSymLink的软链配置上,该配置项说明如下:“如果php文件或其上级目录为符号链接,则__FILE__会返回实际目录地址。但开启会影响性能,所以如果目录中没有符号链接,建议关闭CheckSymLink

阅读全文

curl并发请求时hhvm经常core问题解决方法

现象:最近开发的模块需要并发请求多个url以减少响应时间,但在调试时发现在hhvm下使用curl_multi_exec()并发请求函数时hhvm经常会挂掉。 本机hhvm版本:
./search/pae/hhvm/bin/hhvm –version
HipHop VM v2.2.0 (rel)
Compiler: 1395202646_940937479
Repo schema: 941740069_1395202646
本机gcc版本:
ll /opt/compiler/
gcc-4.8.2 -> /home/opt/gcc-4.8.2.bpkg-r2/gcc-4.8.2.bpkg-r2
原因:hhvm版本与gcc版本不兼容,需要把gcc降一个小版本到4.8.1。 步骤: 1.下载gcc4.8.1
cd /home/work/tools/
  2.停止本机所有hhvm服务及守护进徎   3.安装gcc4.8.1
./gcc-4.8.1.04-installer.bin /opt/compiler/gcc-4.8.1/
4.修改hhvm使用的gcc版本

<div

阅读全文