Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 如何计算每个HTTP请求的CPU使用率_Apache_Go_Cpu Usage - Fatal编程技术网

Apache 如何计算每个HTTP请求的CPU使用率

Apache 如何计算每个HTTP请求的CPU使用率,apache,go,cpu-usage,Apache,Go,Cpu Usage,我想获得发送到本地Apache服务器的每个请求的CPU使用率。我使用top来捕获CPU使用情况,但它不是那么可靠,因为大多数情况下它捕获0作为CPU使用情况。我已经检查了psutil等实用程序,但它们不工作 在这方面是否有任何帮助(Go中的一些代码或包)? P.S对我来说,最好的方法是如果我无法在access.log文件中获取CPU使用率?百分比(CPU负载)-无论您如何收集它-将始终是一个时间点示例。它有助于确定在给定时刻哪个进程使用了更多的CPU,有助于分析程序以了解在执行过程中哪些部分使用

我想获得发送到本地Apache服务器的每个请求的CPU使用率。我使用top来捕获CPU使用情况,但它不是那么可靠,因为大多数情况下它捕获0作为CPU使用情况。我已经检查了psutil等实用程序,但它们不工作

在这方面是否有任何帮助(Go中的一些代码或包)? P.S对我来说,最好的方法是如果我无法在access.log文件中获取CPU使用率?

百分比(CPU负载)-无论您如何收集它-将始终是一个时间点示例。它有助于确定在给定时刻哪个进程使用了更多的CPU,有助于分析程序以了解在执行过程中哪些部分使用了更多的CPU,但对于知道一个请求消耗了多少CPU是完全无用的;这根本不能用CPU%来衡量。即使您设法计算出它,“一个请求使用5%的CPU”也是毫无意义的——它是否在纳秒内使用了5%的CPU?一个小时?您要测量的是CPU时间:您的进程正在使用CPU的时间

CPU负载的基本计算方法是:在上一个采样周期(比如,1秒)中,CPU执行此进程指令的时间有多少。CPU时间是该指标的核心:CPU为该进程执行指令花费了多少时间。这是一个可以有意义地用于为优化、容量规划、性能基准测试等寻找分析目标的指标


获取该信息的最快方法是重新启动服务,生成已知级别的负载(例如,100k请求),最后检查进程的CPU时间(如
top
所示),并将其除以请求计数。这将告诉您一个请求需要多少CPU时间。

可能是因为一个http请求基本上需要0 CPU。通常情况下,你只需汇总统计数据。是的,这就是为什么我发送了许多reuest来生成一些cpu使用率,然后除以请求数,但现在我不能这样做了。我还必须获得单个请求。。就像任何一个hadler一样,我们可以围绕一个reuest进行计算吗?实际上没有一个有用的“瞬时”CPU负载,如果你接收到大量请求,你将浪费更多的资源试图一遍又一遍地测量相同的事情。单独记录CPU统计和http请求的正常过程有什么错(可按需关联)?这不会给我期望的输出,我不会每天计算它,?Go与apache日志的问题有什么关系?我确实同意这一点,这正是我到目前为止所做的,但现在我不得不做个人请求,在所有的研究之后,我没有发现任何东西,所以我来到这里,想也许我有一些东西我没有插手..谢谢你的回复。你可以尝试做同样的事情来测量处理单个请求所消耗的CPU时间,但是人们通过应用重负载并除以发出的请求数来进行测量是有原因的;在处理相同的请求时可能会有很大的差异,因此平均值更具指示性,而且相对于单个请求而言,父进程的开销会比许多请求增加更多的噪音。但是使用top和其他命令行工具很难测量,我想检查一下我们是否可以为相同的任务编写一些代码,这会是什么方向?@azee:如果您在linux上,请执行命令行工具所做的操作,然后重新启动ad
/proc/stat
。实现它可能会让您更好地理解“计算cpu使用率”的含义