當php伺服器cpu使用過高如何查詢原因

2022-09-15 17:39:16 字數 725 閱讀 2974

p.p1

p.p2

p.p3

p.p4

span.s1

span.s2

當php伺服器cpu使用過高如何查詢原因

場景描述:web伺服器cpu報警了,我使用top命令發現cpu占用比較高的是php的程序

單個php程序占用的多,而且使用命令 ps aux|grep -c php 發現php程序數也非常多

這時我們能確定的是,肯定有介面響應速度過慢,一直占用php程序,新的請求過來後php會新起程序導致的

如何查詢慢介面:

1.首先我們需要為nginx日誌配置請求響應時長的選項,預設情況下是沒有的

log_format weblog '$remote_addr ##$request_time## - $remote_user [$time_local] "$request" '

2.接下來我們要通過對日誌進行分析後得到執行比較慢的請求

#!/bin/sh

num=1000

top=50

tail -n $num $logpath|\

awk ''|\

awk -f'##' ''|\

awk -f'?' ''|\

tr 'a-z' 'a-z'|\

sort -nrk 1|head -n $top

這樣我們就可以通過endnum和top來調節檢視最近的num個請求中請求時長最大的top個請求

伺服器CPU過高,排查方法

top 定位異常的程序 top h p pid 檢視異常的執行緒 strace t r c p pid 檢視系統呼叫和花費的時間 printf x n 執行緒號 將異常執行緒轉化為16進製制 jstack 程序號 grep 執行緒號 16進製制異常執行緒號 a90 定位異常的 使用 top 命令定位...

Centos7伺服器記憶體使用過高排查

檢視記憶體使用情況 root vm 16 17 centos free h total used free shared buff cache ailable mem 3.7g 3.1g 152m 772k 413m 338m swap 0b 0b 0b free m top shift m按記憶體...

mysql占用伺服器cpu過高的原因以及解決辦法

登陸mysql mysql p u p mysql show processlist show processlist 命令詳解 processlist命令的輸出結果顯示了有哪些執行緒在執行,可以幫助識別出有問題的查詢語句。下面是mysql占用cpu高處理的乙個例子,希望對遇到類似問題的朋友們有點啟...