欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

歡迎來到云服務器

系統配置

Linux利用Strace調試歷程的能力

早些年,假如你知道有個 strace 呼吁,就很牛了,而此刻各人根基都知道 strace 了,假如你碰著機能問題求助別人,十有八九會發起你用 strace 掛上去看看,不外當你掛上去了,看著滿屏翻騰的字符,卻十有八九看不出個所以然。本文通過一個簡樸的案例,向你展示一下在用 strace 診斷問題時的一些套路。

如下真實案例,如有類似,實屬一定!讓我們看一臺高負載處事器的 top 功效:

Linux利用Strace調試歷程的能力

能力:運行 top 時,按「1」打開 CPU 列表,按「shift+p」以 CPU 排序。

在本例中各人很容易發明 CPU 主要是被若干個 PHP 歷程占用了,同時 PHP 歷程占用的較量多的內存,不外系統內存另有結余,SWAP 也不嚴重,這并不是問題主因。

不外在 CPU 列表中能看到 CPU 主要耗損在內核態「sy」,而不是用戶態「us」,和我們的履歷不符。Linux 操縱系統有許多用來跟蹤措施行為的東西,內核態的函數挪用跟蹤用「strace」,用戶態的函數挪用跟蹤用「ltrace」,所以這里我們應該用「strace」:

不外假如直接用 strace 跟蹤某個歷程的話,那么期待你的往往是滿屏翻騰的字符,想從這里看出問題的癥結并不是一件容易的工作,虧得 strace 可以按操縱匯總時間:

通過「c」選項用來匯總各個操縱的總耗時,運行后的功效或許如下圖所示:

Linux利用Strace調試歷程的能力

很明明,我們能看到 CPU 主要被 clone 操縱耗損了,還可以單獨跟蹤一下 clone:


shell> strace -T -e clone -p <PID>

shell> strace -T -e clone -p <PID>

通過「T」選項可以獲取操縱實際耗損的時間,通過「e」選項可以跟蹤某個操縱:

Linux利用Strace調試歷程的能力

很明明,一個 clone 操縱需要幾百毫秒,至于 clone 的寄義,參考 man 文檔:

Linux利用Strace調試歷程的能力

簡樸來說,就是建設一個新歷程。那么在 PHP 里什么時候會呈現此類系統挪用呢?查詢業務代碼看到了 exec 函數,通過如下呼吁驗證它確實會導致 clone 系統挪用:

shell> strace -eclone php -r ‘exec(“ls”);’

最后再考各人一個題:假如我們用 strace 跟蹤一個歷程,輸出功效很少,是不是說明歷程很空閑?其實試試 ltrace,,大概會發明別有洞天。記著有內核態和用戶態之分。

騰訊云代理

Copyright © 2003-2021 MFISP.COM. 國外vps服務器租用 夢飛云服務器租用 版權所有 ? 粵ICP備11019662號

主站蜘蛛池模板: 中西区| 红河县| 新宁县| 嵊泗县| 嘉义市| 康定县| 阳新县| 连州市| 辉县市| 灯塔市| 察雅县| 东至县| 唐海县| 寿光市| 扶风县| 平山县| 永昌县| 麦盖提县| 什邡市| 杂多县| 阿克陶县| 东台市| 沁阳市| 赤壁市| 习水县| 道孚县| 加查县| 衡阳市| 长葛市| 辽宁省| 乌兰察布市| 宝清县| 讷河市| 突泉县| 刚察县| 禄丰县| 樟树市| 左贡县| 民县| 伊通| 临桂县|