hhvm-perf-syscall

hhvm配置优化-添加文件缓存

现象

CPU sys占用比较高,持续在40%-50%之间,导致load一路飙高。
file-list

排查

通过sysdig查看,发现大部分调用集中在lstat。关于lstat的原因及优化,可以参考http://www.simlinux.com/archives/1531.html

1
sysdig -c topscalls proc.name=hhvm

file-list

尝试在hhvm上配置open_basedir,发现不能正常工作,gihub上搜到的答案都没能解决问题。最后无奈,只能从源码下手。尝试找下源码中有没有类似的配置,结果真有发现。

1
grep RuntimeOption * -r --col|grep -i cache

file-list

在hhvm上进行配置StatCache,然后重启hhvm。

1
2
3
4
5
6
7
8
9
Server {
Port = 9001
Type = fastcgi
#IniFile = /home/work/app/php/etc/php.ini
ThreadCount = 96
#RequestTimeoutSeconds = 30
ExposeHPHP = false
StatCache = true
}

改后结果:

file-list
file-list