成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > PHP實現(xiàn)通過strace定位故障原因的方法

PHP實現(xiàn)通過strace定位故障原因的方法

熱門標(biāo)簽:遼寧ai電銷機器人價格 上海做外呼線路的通信公司 寧波外呼營銷系統(tǒng) 地圖標(biāo)注專員怎么樣 電話機器人銷售主要負(fù)責(zé)什么 長沙做地圖標(biāo)注公司 福建銀行智能外呼系統(tǒng)價格 房產(chǎn)中介用的是什么外呼系統(tǒng) 四川保險智能外呼系統(tǒng)供應(yīng)商

本文實例講述了PHP實現(xiàn)通過strace定位故障原因的方法。分享給大家供大家參考,具體如下:

俗話說:不怕賊偷,就怕賊惦記著。在面對故障的時候,我也有類似的感覺:不怕出故障,就怕你不知道故障的原因,故障卻隔三差五的找上門來。

十一長假還沒結(jié)束,服務(wù)器卻頻現(xiàn)高負(fù)載,Nginx出現(xiàn)錯誤日志:

connect() failed (110: Connection timed out) while connecting to upstream
connect() failed (111: Connection refused) while connecting to upstream

看上去是Upstream出了問題,在本例中Upstream就是PHP(版本:5.2.5)??上ПO(jiān)控不完善,我搞不清楚到底是哪出了問題,無奈之下只好不斷重啟PHP來緩解故障。

如果每次都手動重啟服務(wù)無疑是個苦差事,幸運的是可以通過CRON設(shè)置每分鐘執(zhí)行:

#/bin/bash
LOAD=$(awk '{print $1}' /proc/loadavg)
if [ $(echo "$LOAD > 100" | bc) = 1 ]; then
  /etc/init.d/php-fpm restart
fi

可惜這只是一個權(quán)宜之計,要想徹底解決就必須找出故障的真正原因是什么。

閑言碎語不要講,輪到Strace出場了,統(tǒng)計一下各個系統(tǒng)調(diào)用的耗時情況:

shell> strace -c -p $(pgrep -n php-cgi)
% time   seconds usecs/call   calls  errors syscall
------ ----------- ----------- --------- --------- ----------------
 30.53  0.023554     132    179      brk
 14.71  0.011350     140    81      mlock
 12.70  0.009798     15    658    16 recvfrom
 8.96  0.006910      7    927      read
 6.61  0.005097     43    119      accept
 5.57  0.004294      4    977      poll
 3.13  0.002415      7    359      write
 2.82  0.002177      7    311      sendto
 2.64  0.002033      2   1201     1 stat
 2.27  0.001750      1   2312      gettimeofday
 2.11  0.001626      1   1428      rt_sigaction
 1.55  0.001199      2    730      fstat
 1.29  0.000998     10    100    100 connect
 1.03  0.000792      4    178      shutdown
 1.00  0.000773      2    492      open
 0.93  0.000720      1    711      close
 0.49  0.000381      2    238      chdir
 0.35  0.000271      3    87      select
 0.29  0.000224      1    357      setitimer
 0.21  0.000159      2    81      munlock
 0.17  0.000133      2    88      getsockopt
 0.14  0.000110      1    149      lseek
 0.14  0.000106      1    121      mmap
 0.11  0.000086      1    121      munmap
 0.09  0.000072      0    238      rt_sigprocmask
 0.08  0.000063      4    17      lstat
 0.07  0.000054      0    313      uname
 0.00  0.000000      0    15     1 access
 0.00  0.000000      0    100      socket
 0.00  0.000000      0    101      setsockopt
 0.00  0.000000      0    277      fcntl
------ ----------- ----------- --------- --------- ----------------
100.00  0.077145         13066    118 total

看上去「brk」非常可疑,它竟然耗費了三成的時間,保險起見,單獨確認(rèn)一下:

shell> strace -T -e brk -p $(pgrep -n php-cgi)
brk(0x1f18000) = 0x1f18000 0.024025>
brk(0x1f58000) = 0x1f58000 0.015503>
brk(0x1f98000) = 0x1f98000 0.013037>
brk(0x1fd8000) = 0x1fd8000 0.000056>
brk(0x2018000) = 0x2018000 0.012635>

說明:在Strace中和操作花費時間相關(guān)的選項有兩個,分別是「-r」和「-T」,它們的差別是「-r」表示相對時間,而「-T」表示絕對時間。 簡單統(tǒng)計可以用「-r」,但是需要注意的是在多任務(wù)背景下,CPU隨時可能會被切換出去做別的事情,所以相對時間不一定準(zhǔn)確,此時最好使用「-T」,在行 尾可以看到操作時間,可以發(fā)現(xiàn)確實很慢。

在繼續(xù)定位故障原因前,我們先通過「man brk」來查詢一下它的含義:

brk() sets the end of the data segment to the value specified by end_data_segment, when that value is reasonable, the system does have enough memory and the process does not exceed its max data size (see setrlimit(2)).

簡單點說就是內(nèi)存不夠用時通過它來申請新內(nèi)存(data segment),可是為什么呢?

shell> strace -T -p $(pgrep -n php-cgi) 2>1 | grep -B 10 brk
stat("/path/to/script.php", {...}) = 0 0.000064>
brk(0x1d9a000) = 0x1d9a000 0.000067>
brk(0x1dda000) = 0x1dda000 0.001134>
brk(0x1e1a000) = 0x1e1a000 0.000065>
brk(0x1e5a000) = 0x1e5a000 0.012396>
brk(0x1e9a000) = 0x1e9a000 0.000092>

通過「grep」我們很方便就能獲取相關(guān)的上下文,反復(fù)運行幾次,發(fā)現(xiàn)每當(dāng)請求某些PHP腳本時,就會出現(xiàn)若干條耗時的「brk」,而且這些PHP 腳本有一個共同的特點,就是非常大,甚至有幾百K,為何會出現(xiàn)這么大的PHP腳本?實際上是程序員為了避免數(shù)據(jù)庫操作,把非常龐大的數(shù)組變量通過「var_export」持久化到PHP文件中,然后在程序中通過「include」來獲取相應(yīng)的變量,因為變量太大,所以PHP不得不頻繁執(zhí)行「brk」,不幸的是在本例的環(huán)境中,此操作比較慢,從而導(dǎo)致處理請求的時間過長,加之PHP進程數(shù)有限,于是乎在Nginx上造成請求擁堵,最終導(dǎo)致高負(fù)載故障。

下面需要驗證一下推斷似乎否正確,首先查詢一下有哪些地方涉及問題腳本:

shell> find /path -name "*.php" | xargs grep "script.php"

直接把它們都禁用了,看看服務(wù)器是否能緩過來,或許大家覺得這太魯蒙了,但是特殊情況必須做出特殊的決定,不能像個娘們兒似的優(yōu)柔寡斷,沒過多久,服務(wù)器負(fù)載恢復(fù)正常,接著再統(tǒng)計一下系統(tǒng)調(diào)用的耗時:

shell> strace -c -p $(pgrep -n php-cgi)
% time   seconds usecs/call   calls  errors syscall
------ ----------- ----------- --------- --------- ----------------
 24.50  0.001521     11    138     2 recvfrom
 16.11  0.001000     33    30      accept
 7.86  0.000488      8    59      sendto
 7.35  0.000456      1    360      rt_sigaction
 6.73  0.000418      2    198      poll
 5.72  0.000355      1    285      stat
 4.54  0.000282      0    573      gettimeofday
 4.41  0.000274      7    42      shutdown
 4.40  0.000273      2    137      open
 3.72  0.000231      1    197      fstat
 2.93  0.000182      1    187      close
 2.56  0.000159      2    90      setitimer
 2.13  0.000132      1    244      read
 1.71  0.000106      4    30      munmap
 1.16  0.000072      1    60      chdir
 1.13  0.000070      4    18      setsockopt
 1.05  0.000065      1    100      write
 1.05  0.000065      1    64      lseek
 0.95  0.000059      1    75      uname
 0.00  0.000000      0    30      mmap
 0.00  0.000000      0    60      rt_sigprocmask
 0.00  0.000000      0     3     2 access
 0.00  0.000000      0     9      select
 0.00  0.000000      0    20      socket
 0.00  0.000000      0    20    20 connect
 0.00  0.000000      0    18      getsockopt
 0.00  0.000000      0    54      fcntl
 0.00  0.000000      0     9      mlock
 0.00  0.000000      0     9      munlock
------ ----------- ----------- --------- --------- ----------------
100.00  0.006208         3119    24 total

顯而易見,「brk」已經(jīng)不見了,取而代之的是「recvfrom」和「accept」,不過這些操作本來就是很耗時的,所以可以定位「brk」就是故障的原因。

擁抱故障,每一次故障都是歷練。正所謂:天將降大任于斯人也,必先苦其心志,勞其筋骨,餓其體膚,空乏其身,行拂亂其所為,所以動心忍性,增益其所不能。

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP錯誤與異常處理方法總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP運算與運算符用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP基本語法入門教程》及《php面向?qū)ο蟪绦蛟O(shè)計入門教程》

希望本文所述對大家PHP程序設(shè)計有所幫助。

您可能感興趣的文章:
  • php+redis在實際項目中HTTP 500: Internal Server Error故障排除
  • IIS下PHP運行環(huán)境搭建與網(wǎng)頁服務(wù)器故障排查方法
  • IIS PHP環(huán)境Temp文件夾的權(quán)限問題引起的網(wǎng)站故障
  • 基于PHP7錯誤處理與異常處理方法(詳解)
  • phpStudy配置多站點多域名方法及遇到的403錯誤解決方法
  • PHP中常見的錯誤與異常處理總結(jié)大全
  • php實現(xiàn)的錯誤處理封裝類實例
  • 淺談PHP錯誤類型及屏蔽方法
  • php中的異常和錯誤淺析
  • PHP中Notice錯誤常見解決方法

標(biāo)簽:澳門 常德 工商登記 佛山 宿遷 宜春 深圳 延安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP實現(xiàn)通過strace定位故障原因的方法》,本文關(guān)鍵詞  PHP,實現(xiàn),通過,strace,定位,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP實現(xiàn)通過strace定位故障原因的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP實現(xiàn)通過strace定位故障原因的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    91caoporm在线视频| 999国产精品视频免费| ,亚洲人成毛片在线播放| 免费在线欧美视频| 欧美色图一区二区| 亚洲精品美女在线| 亚洲精品大全| 日韩成人影视| 蜜桃精品wwwmitaows| 日韩欧美国产综合在线一区二区三区| 伊人久久久久久久久久久久| 久久视频这里只有精品| 年下总裁被打光屁股sp| 青春草国产视频| 中文在线免费看视频| 欧美日韩伊人| 亚洲av无码一区二区二三区| 欧美欧美欧美欧美首页| 99麻豆久久久国产精品免费| 国产精品美女一区二区在线观看| 欧美激情20| 欧美日韩一级大片网址| 亚洲卡通欧美制服中文| 日韩午夜激情免费电影| 国产精品毛片在线| 欧美撒尿777hd撒尿| 视色视频在线观看| 欧美精品一区二区三区四区| 国产精品男人的天堂| 亚洲第一页中文字幕| 国产亚洲一区二区三区在线播放| 色婷婷精品大在线视频| 波多视频一区| 黄色一级一级片| 久久99久久久欧美国产| www.xxxx精品| 日韩女优视频免费观看| 天堂在线免费视频| 午夜精品在线视频一区| 国内福利写真片视频在线| 国产日韩欧美久久| 一区二区三区四区国产精品| 亚洲一区二区三区sesese| 日韩一区二区电影网| 日韩精品av一区二区三区| 亚洲一本二本| 亚洲精品www久久久久久广东| 少妇黄色一级片| 国产精品一卡二| 91精品国产综合久久久久久久久| 日韩免费va| 欧美一卡2卡三卡4卡5免费| 欧美美女色图| 国产精品三级a三级三级午夜| 97人洗澡人人免费公开视频碰碰碰| 午夜成年女人毛片免费观看| 精品久久久久久久久久久久久久久久| 国内精品写真在线观看| 日本在线www| 日韩在线观看a| 男女啪啪免费体验区| 日韩亚洲精品视频| 美女视频久久久| 亚洲欧美卡通另类91av| gogo高清在线播放免费| 亚洲精品女人| 久久香蕉国产线看观看99| 国产情侣高潮对白| 精品国产18久久久久久洗澡| 成人午夜在线观看视频| 五月婷婷一区| 日本网址在线观看| 精品久久对白| 麻豆精品蜜桃| 一区二区三区四区五区精品| 草莓视频丝瓜在线观看丝瓜18| 中文幕一区二区三区久久蜜桃| 成人午夜精品无码区| 国产精品日韩精品在线播放| 久久99精品久久久久久欧洲站| 波多野结衣在线aⅴ中文字幕不卡| 国产老头老太做爰视频| 久久国产乱子精品免费女| 992tv国产精品成人影院| 岛国片免费看| 日韩一区二区三区免费观看| 亚洲三区在线观看| 久久人人爽av| 亚洲电影免费观看高清完整版在线| eeuss鲁丝片eeuss影院| 亚洲欧美综合网| 日韩资源av在线| 秋霞一区二区三区| 性欧美疯狂猛交69hd| 亚洲无中文字幕| 成人3d动漫一区二区三区| av男人的天堂在线| 亚洲资源网你懂的| 国产精品第一视频| 成人免费网站在线| 成人a在线视频免费观看| 国产美女视频一区二区| 制服丝袜激情欧洲亚洲| 国语自产精品视频在线看抢先版图片| 久久精品这里只有精品| 黄色网址免费看| 亚洲一区二区中文字幕| 成人高清视频在线观看| 日韩成人免费在线| 日韩一区二区在线免费观看| xxxx视频在线| 毛片基地一级大毛片| 久久久国产在线视频| 日韩主播视频在线| 9.1麻豆精品| 性中国xxx极品hd| 成人黄网大全在线观看| 久久青青草原| 鲁大师成人一区二区三区| 成人无码一区二区三区| 国产原创视频在线| 中文字幕精品无| 精品国产亚洲在线| 精品国产一区二区三区久久久蜜臀| 国产女片a归国片aa| 久久亚洲精品视频| 国产视频一区二区三区四区五区| 中文字幕一区二区三区精品| 999国产精品亚洲77777| 拍拍拍999自拍偷| 亚洲福利视频专区| 久久精品午夜福利| 在线电影福利片| 性做久久久久久免费观看欧美| 欧美在线视频a| 二区三区精品| 欧美夫妻性生活| 在线播放av网址| 亚洲第一网站男人都懂| 国产一区二区三区黄视频| 国产精品第10页| 亚洲欧美视频一区| 少妇喷水在线观看| 亚洲午夜精品17c| 亚洲熟妇无码一区二区三区导航| 欧美黄色一区二区三区| 亚洲三区在线观看无套内射| 久久精品国产www456c0m| sesexxxx| 二区在线观看| 欧美日韩在线直播| 成人做爽爽免费视频| 黄污视频在线观看| 欧美电影免费观看完整版| 中文字幕乱码亚洲无线精品一区| 日韩午夜在线视频| 亚洲区小说区图片区qvod按摩| 国产三区二区一区久久| 国产激情在线观看| 97色伦图片97色伦在线电影| 国产黄页在线观看| 高潮白浆女日韩av免费看| 精品福利视频导航大全| 麻豆影视在线| 日本在线不卡视频一二三区| 亚欧美中日韩视频| 欧美日韩亚洲一区二区三区| 91免费观看在线| 国产传媒在线| 精品国内自产拍在线观看| 无码任你躁久久久久久久| 红桃成人av在线播放| 日本免费观看视| 国产福利电影在线观看| 国产高清视频网站| 波多野结衣中文字幕一区| 一级在线观看| 涩涩涩999| 性欧美大战久久久久久久免费观看| 免费欧美电影| 久久国产在线观看| 亚洲综合激情在线| 九九99久久精品在免费线bt| 亚洲香蕉伊综合在人在线视看| 成人免费毛片男人用品| 在线观看的网站你懂的| 亚洲精品一区二区在线播放∴| 亚洲无线码在线一区观看| 午夜亚洲一区| 后入内射无码人妻一区| 精品国产一区二区三区四区在线观看| 亚洲国产精品一区二区三区| 亚洲综合网站久久久| av中文网站| 男女性色大片免费观看一区二区| 99久久夜色精品国产亚洲| 亚洲欧美精品久久| 鲁一鲁一鲁一鲁一色| 精品久久久久久中文字幕| 中文字幕欧美日韩va免费视频| 亚洲xxx拳头交| 国产精品综合久久久久久| 国产精品yjizz视频网一二区| 国产精品久久AV无码| 国产乱码精品一区二三区蜜臂| 美女免费视频一区| 国产精品久久久久久久蜜臀| 神马影院一区二区三区| www.美女亚洲精品| 国产精品v日韩精品v欧美精品网站| 亚洲美女av电影| 91精品国产91久久久久青草| 成人免费视频国产免费观看| 国产欧美一区二区三区久久人妖| 7777精品视频| 91手机在线观看| 国产三级在线免费| 青青草原成人网| 国产精品成人3p一区二区三区| 日韩三级久久| 国产香蕉尹人视频在线| 免费一二一二在线视频| huan性巨大欧美| 精品在线免费观看视频| 六月婷婷综合网| 欧美日韩日本视频| 日本亚洲欧美三级| 暖暖影院日本高清...免费| 精品176二区| 国产乱人伦精品一区二区在线观看| av中文在线资源库| 97**国产露脸精品国产| 成视频免费在线看| 成人免费在线视频网址| 日韩在线视频免费| 国产一级生活片| 欧美日韩导航| 69影院欧美专区视频| 日本精品在线观看视频| 成人妖精视频yjsp地址| 精品国产一区二区三区免费| 91高清免费视频| 里番精品3d一二三区| 成年女人a毛片免费视频| 三上悠亚在线资源| 性直播在线观看| 欧美精品久久天天躁| 欧美日韩视频| 777午夜精品电影免费看| 久久久精品日韩| 亚洲一区精品电影| 国产1区2区3区在线| 91精品视频在线免费观看| 5566日本婷婷色中文字幕97| 色综合色综合色综合色综合色综合| 一区二区三区在线免费看| 欧美熟妇另类久久久久久不卡| 99久久99热这里只有精品| 国产精品无码网站| 国产黄色高清视频| 亚洲第一男人天堂| 水蜜桃色314在线观看| 成人黄色电影在线| 欧美三级日本三级少妇99| 免费av网站在线播放| 热99re久久精品这里都是免费| 狠狠人妻久久久久久综合麻豆| 蜜桃欧美视频| 中文字幕在线2019| av成人国产| 深爱五月激情五月| 不卡的免费av| 国模少妇一区二区三区| 日本一区二区欧美| 国产精品三上| 久久网站免费视频| 一区精品在线播放| 国产一区二区三区高清在线观看| 国产欧美日韩亚洲| 色哟哟精品一区| 国产91精品久久久久| 欧美日韩一区二区三区视频播放| 成人午夜在线影视| 国产精品羞羞答答xxdd| av黄色在线| 日韩在线观看视频一区二区| 欧美日本在线视频中文字字幕| 黄色片网址在线观看| 婷婷激情一区| 黄色一区二区三区四区| 亚洲欧美精品一区二区| 欧美性猛交xxxx乱大交蜜桃| 亚洲精品电影在线观看| 最新国产一区二区| 丰满少妇大力进入| 亚洲综合五月天婷婷丁香| 久久久久久亚洲综合影院红桃| 国产精品白浆流出视频| 亚洲免费看黄网站| 国产一区二区三区精彩视频| 麻豆短视频在线观看| www.av免费| 国产精品二区二区三区| 久久精品国产亚洲高清剧情介绍| 日韩不卡视频一区二区| 天天躁日日躁aaaa视频| 国产精品久久..4399| 久久这里精品国产99丫e6| 中文字幕日韩欧美在线| 正在播放一区二区三区| 久久综合色88| 午夜视频免费在线| ady日本映画久久精品一区二区| 在线观看精品国产视频| 视频国产一区二区三区| 欧美美女视频在线观看| 免费人成又黄又爽又色| 亚洲av无码国产精品久久不卡| 999大胆视频| 在线亚洲激情| 亚洲精品免费视频| av国产在线观看| av小说天堂网| 免费h视频网站| 日本韩国福利视频| 久久无码人妻一区二区三区| 国产精品―色哟哟| 欧美日韩另类一区|