如何解决如何从 PHP 状态页面获取一致的数据
设置——在 bash、cent6、php 7.2.34 中。使用 fcgi 从池的 PHP 状态页面获取数据。
$ sudo SCRIPT_NAME=/status SCRIPT_FILENAME=/status REQUEST_METHOD=GET QUERY_STRING="full&json" /usr/bin/cgi-fcgi -bind -connect /dev/shm/my-php.sock
这会以 JSON 格式返回来自状态页面的数据:
{
"pool":"my","process manager":"ondemand","start time":1618235462,"start since":696688,"accepted conn":3382,"listen queue":0,"max listen queue":0,"listen queue len":0,"idle processes":0,"active processes":2,"total processes":2,"max active processes":4,"max children reached":0,"slow requests":0,"processes":[
{
"pid":2607,"state":"Running","start time":1618239178,"start since":692972,"requests":3,"request duration":692946671295,"request method":"GET","request uri":"redacted","content length":0,"user":"-","script":"redacted","last request cpu":0.00,"last request memory":0
},{
"pid":2720,"start time":1618239219,"start since":692931,"requests":2,"request duration":692920698981,{
"pid":22744,"start time":1618932150,"start since":0,"requests":1,"request duration":869,"request uri":"/status?full&json","script":"-","last request memory":0
}
]
}
因此,对于活动进程,我想要采样的数据 --
"active processes":2,
等于2。
问题是,如果没有活动进程,返回的数据是 1(只是“请求 uri”:“/status?full&json”)
{
"pool":"other","start time":1618408996,"start since":524662,"accepted conn":490,"active processes":1,"total processes":1,"max active processes":1,"processes":[
{
"pid":26928,"start time":1618933658,"request duration":840,"last request memory":0
}
]
}
我觉得这是一个错误,我可以根据自己的目的对其进行编程,但如果有更好、更一致的方式来获取这些数据,那就更好了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。