Mysql

php 和 mysqld 程序執行數小時。這是正常的嗎?

  • August 7, 2015

我有一個 Jenkins 伺服器,它定期重建 PHP/mySQL 應用程序。每次推送新的 PHP 程式碼時,此作業都會刪除相應數據庫中的所有表,然後使用 PHP 安裝程序中指定的結構重新創建它們。這在大多數情況下都可以正常工作,儘管偶爾會掛起。

我不確定 mysqld/php 程序是如何被實例化/銷毀的。我注意到我經常有執行一個多小時的 php 程序,而且我經常有至少一個執行數小時/天的 mysqld 程序。看看我的top輸出:

在此處輸入圖像描述

每次請求頁面時,您不應該獲得一個新程序嗎?頁面傳遞後不應該銷毀該過程嗎?我認為PHP是這樣工作的,我不確定mysqld。我在 php.ini 中有一行寫著max_execution_time = 30,所以我很困惑這個 php 程序如何持續一個多小時。

除非您將 Jenkins 作業配置為每次執行時啟動和停止 mysqld,否則您不會看到它從程序列表中消失。mysqld 是一個始終在後台執行的守護程序,具體取決於它的配置和安裝方式。標準軟體包安裝將使服務能夠在啟動時啟動。

此外,mysqld 不會派生新程序。所有查詢都將由該單個程序處理。

對於 PHP 程序,該top命令不會以實時(時鐘)時間顯示 TIME。它正在報告 CPU 時間。您可以讓一個程序執行幾個小時,但它只使用了幾分鐘甚至幾秒鐘的 CPU 時間。此外,它將 CPU 時間報告為 m:ss.t(分鐘:秒。十分之一秒)。

引用自:https://serverfault.com/questions/711632