如何检测哪个功能最常使用cpu?

时间:2018-07-28 12:26:46

标签: php

如何检测哪个功能最常使用cpu? 我通常达到20 reqs / s,但CPU使用率大约为%50,这很糟糕。我对服务器的性能毫不怀疑,因为它是我的。

我需要找出脚本中最消耗CPU的函数,但我不知道该怎么做。我使用自定义脚本,已全部编写。

1 个答案:

答案 0 :(得分:1)

我认为TidewaysXHGUI可以取得很好的效果。

更新

安装MongoDB的最新社区版本

  1. 使用以下内容创建文件/etc/yum.repos.d/mongo-org-3.4.repo

    [mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

  2. 安装MongoDB – sudo yum install mongodb-org

  3. 首次运行MongoDB(它将在启动时自动启动)– service mongod start

安装PEAR(具有PECL),然后安装MongoDB的PHP扩展

  1. 运行sudo yum install php-pear
  2. 运行pecl install mongodb
  3. 将扩展名添加到php.ini并重新启动PHP-FPM extension=mongodb.so

安装用于PHP分析的Tideways扩展

  1. 使用以下内容创建文件/etc/yum.repos.d/tideways.repo

    [tideways] name = Tideways baseurl = https://s3-eu-west-1.amazonaws.com/qafoo-profiler/rpm

  2. 导入RSA密钥-rpm --import https://s3-eu-west-1.amazonaws.com/qafoo-profiler/packages/EEB5E8F4.gpg

  3. 安装扩展程序– sudo yum install tideways-php
  4. 编辑配置/etc/php-5.6.d/40-tideways.ini并禁用autoprepending

    tideways.auto_prepend_library=0 tideways.auto_start=0 tideways.sample_rate=100

  5. 重新启动PHP-FPM – service php-fpm restart

安装XHgui

  1. https://github.com/perftools/xhgui/archive/master.zip下载
  2. 解压缩到/var/www中,并将文件夹从xhgui-master重命名为xhgui
  3. 更新权限– chmod 777 /var/www/xhgui/cache
  4. 为nginX创建虚拟主机,并将其指向/var/www/xhgui/webroot
  5. MongoDB

    中创建索引

    $ mongo

    > use xhprof

    > db.results.ensureIndex( { 'meta.SERVER.REQUEST_TIME' : -1 } )

    > db.results.ensureIndex( { 'profile.main().wt' : -1 } )

    > db.results.ensureIndex( { 'profile.main().mu' : -1 } )

    > db.results.ensureIndex( { 'profile.main().cpu' : -1 } )

    > db.results.ensureIndex( { 'meta.url' : 1 } )

    > db.results.ensureIndex( { 'meta.simple_url' : 1 } )

    > exit

  6. 导航到/var/www/xhgui并运行安装程序– php install.php

  7. autoprepend中设置php.ini指令,然后重新启动PHP-FPM

    auto_prepend_file = /var/www/xhgui/external/header.php

  8. 要限制 MongoDB 的磁盘使用情况(例如5天= 432000秒)

    $ mongo

    > use xhprof

    > db.results.ensureIndex( { "meta.request_ts" : 1 }, { expireAfterSeconds : 432000 } )