欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

CloudFoundry php buildpack 性能调优

程序员文章站 2022-05-29 15:30:42
...

采用了开源的cf-php-buildpack。 地址 https://github.com/dmikusa-pivotal/cf-php-build-pack 搭建内部apache 服务器后,将需要的依赖包放入apacher服务器,然后将buildpack中的option.json修改为搭建的apache服务器地址 问题1: 命令行 使用buildpack push

采用了开源的cf-php-buildpack。 地址https://github.com/dmikusa-pivotal/cf-php-build-pack 搭建内部apache 服务器后,将需要的依赖包放入apacher服务器,然后将buildpack中的option.json修改为搭建的apache服务器地址

问题1:

命令行 使用buildpack push 后,总是启动失败,查看crashlogs,发现fpm进程 没有启动

Reading logs/stdout.log... OK
06:51:32 php-fpm | /bin/sh: /home/vcap/app/php/sbin/php-fpm: not found
06:51:32 php-fpm-logs | tail: cannot open `/home/vcap/app/../logs/php-fpm.log' for reading: No such file or directory

使用 命令 cf files app/.bp/logs/bp.log 发现根本就没有下载 fpm 依赖包,最后定位出,是因为我的apache 服务器中没有 sha1 文件,增加后,恢复正常

问题2 :

使用了wordpress 作为测试程序,push成功后,使用apache自带的ab进行测试,发现 10000个请求,500并发只能响应成功不到1000个。。。。。

查看warden内 container 的日志 出现错误:

[16-May-2014 07:14:45] WARNING: [pool www] pm.start_servers is not set. It's been set to 7.
[16-May-2014 07:14:45] NOTICE: fpm is running, pid 46
[16-May-2014 07:14:45] NOTICE: ready to handle connections
[16-May-2014 07:16:30] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 0 idle, and 14 total children
[16-May-2014 07:16:31] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 0 idle, and 19 total children
[16-May-2014 07:16:32] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 24 total children
[16-May-2014 07:16:33] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 29 total children
[16-May-2014 07:16:34] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it

通过调整 buildpack中的php-fpm.conf 文件中的参数

pm.max_children = 30

; The number of child processes created on startup.
; Note: Used only when pm is set to 'dynamic'
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm.start_servers =

; The desired minimum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.min_spare_servers = 5

; The desired maximum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.max_spare_servers = 10

最后测试,10000个请求,500并发,可以全部请求成功。