我有一个Jenkins服务器,它定期重buildPHP / mySQL应用程序。 每次推送新的PHP代码时,这个作业将删除相应数据库中的所有表,然后使用PHP安装程序中指定的结构重新创build它们。 这大部分工作正常,虽然偶尔挂起。
我不知道如何mysqld / php进程实例化/销毁。 我注意到我经常有运行一个多小时的php进程,而且我至less有一个运行数小时/天的mysqld进程。 看看我的top
输出:
每次请求页面时,你不应该得到一个新的进程吗? 这个过程是不是应该在页面交付后被销毁? 我以为PHP的工作方式,我不知道有关mysqld。 我在php.ini中有一行说max_execution_time = 30
,所以我很困惑如何这个PHP过程可能会超过一个小时。
除非你将Jenkins作业configuration为每次运行时都启动和停止mysqld,否则不会看到它从进程列表中消失。 mysqld是一个随时在后台运行的守护进程,具体取决于它如何configuration和安装。 标准的软件包安装将使服务在启动时启动。
另外,mysqld不会分叉新的进程。 所有查询将由该单个进程处理。
至于PHP进程, top
命令不会在实时(时钟)时间显示TIME。 它报告CPU时间。 您可以让一个进程运行几个小时,但它只用了几分钟,甚至几秒钟的CPU时间。 另外,它报告的CPU时间为m:ss.t(分钟:seconds.tenths一秒)。