Apache 記錄請求響應時間日誌

roc_guo發表於2021-12-28

Apache 記錄請求響應時間日誌Apache 記錄請求響應時間日誌

官網介紹

在Apache2的中文手冊中,是這樣定義 %T 這個變數的。%T 處理完請求所花時間,以秒為單位。
在Apache2的英文文件中,定義如下:

%T the time taken to server the request, in seconds.

由此可見,這個時間表示的是伺服器處理這個請求的總時間。 而不是Apache伺服器解析PHP ,並且輸出 的時間。因此,我們可以看到同樣的一個頁面,網速比較慢的使用者訪問時間會長,而網速較快的使用者訪問,則時間比較短。

%T記錄的是以秒為單位的時間,這對於我們來說是不太夠的。因為很多情況下,我們需要保證我們網頁的響應速度在1秒以內。從Apache 2.0 開始,提供了一個新的引數 %D。可以記錄伺服器處理請求的微秒時間(注意和%T的定義不同)。

配置響應時間

我在伺服器上做了一次測試,程式碼中嵌入了一個執行時間的檢查判斷,同時監視日誌檔案中產生的時間。結果為:頁面監測指令碼執行時間為10009206毫秒,而日誌中記錄的是10009838,兩者時間並不一樣,日誌中記錄的時間稍微長一些,包含了DNS查詢等一系列的過程。找到apache配置檔案

netstat -nap | grep 80
# 找到對應埠程式 31114
tcp6 0 0 :::4430 :::* LISTEN 31114/httpd
ps auxf | grep 31114
# 找到對應apache的程式命令中的配置檔案*.conf的路徑,到指定路徑修改配置檔案,例如
vim httpd.conf

修改指定埠下的VirtualHost

<VirtualHost 80>
.......
CustomLog "/var/prof.log" "[%a]%{%F %T}t id=%{APIIndex}i time=%D(us) url=%U%q"
</VirtualHost>
指令: CustomLog "/var/prof.log" "[%a]%{%F %T}t id=%{APIIndex}i time=%D(us) url=%U%q"
%D - 官方解釋:Time taken to process the request, in millis,處理請求的時間,以微秒為單位
%T - 官方解釋:Time taken to process the request, in seconds,處理請求的時間,以秒為單位
%{ms}T - 官方解釋:Time taken to commit the response, in millis,提交響應的時間,以毫秒為單位

修改後重啟apache,觀察日誌輸出資料如下:

[200.200.222.95]2021-12-04 15:39:32 id=- time=100107(us) url=/apps/secvisual/home/home/on_dev_manage
[200.200.222.95]2021-12-04 15:39:38 id=- time=106476(us) url=/apps/secvisual/home/home/on_dev_manage
[200.200.222.95]2021-12-04 15:39:43 id=- time=101263(us) url=/apps/secvisual/home/home/on_dev_manage
[200.200.222.95]2021-12-04 15:39:48 id=- time=101333(us) url=/apps/secvisual/home/home/on_dev_manage


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2849680/,如需轉載,請註明出處,否則將追究法律責任。

相關文章