婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > php-fpm重啟導致的程序執行中斷問題詳解

php-fpm重啟導致的程序執行中斷問題詳解

熱門標簽:咸寧銷售電銷機器人系統 廣東廣州在怎么申請400電話 百度地圖標注偏差 外呼系統能給企業帶來哪些好處 電銷機器人問門薩維品牌my 百度地圖怎樣標注圖標 開發地圖標注類網站 400電話蘭州申請請 余姚電話機器人

背景和初步排查

  • 訂單業務對賬時報警了,有筆訂單在我們自己的mongo庫里沒有找到
  • 業務接口  /3/xx/vgift/send 調用禮物系統  sendPresent 接口完成送禮, 之后寫mongo,但是php error log 里卻查不到任何mongo異常日志
  • 寫mongo沒有異常,但是庫里卻沒記錄,推斷只有2個可能

1是error log 丟日志了
2是程序執行過程中操作完sendPresent后down掉了,導致沒寫入mongo
-第一個情況工作多年的經驗來看應該不至于,那就先根據第二種情況繼續查吧

  • 那就去看下php-fpm 的日志,看對應的時間點有沒有什么異常
[wu.daolin@web001.m6~]$ grep "2017 05:28" /var/log/php-fpm.log
[25-Jun-2017 05:28:01] NOTICE: Terminating ...

跟訂單時間剛好吻合,那肯定有必要研究下了

熟悉下 php-fpm 的管理

php-fpm 是通過 php-fpm這個命令進行管理的,我們先看下這個命令

man php-fpm

這里有提到,php-fpm then responds to several POSIX signals php-fpm 會對下面幾個信號作(自己的)處理

  • SIGINT, SIGTERM: immediate termination
  • SIGQUIT: graceful stop
  • SIGUSR1: re-open log file
  • SIGUSR2: graceful reload of all workers + reload of fpm conf/binary

動手驗證下

sudo kill -QUIT {php-fpm-pid}

[26-Jun-2017 13:58:22] NOTICE: Finishing ...            
[26-Jun-2017 13:58:22] NOTICE: exiting, bye-bye!

sudo kill -TERM {php-fpm-pid}

[26-Jun-2017 13:59:21] NOTICE: Terminating ...            
[26-Jun-2017 13:59:21] NOTICE: exiting, bye-bye!

sudo kill -USR2 12583

[26-Jun-2017 14:00:48] NOTICE: Reloading in progress ...          
[26-Jun-2017 14:00:48] NOTICE: reloading: execvp("/usr/sbin/php-fpm", {"/usr/sbin/php-fpm", "--daemonize"})    
[26-Jun-2017 14:00:48] NOTICE: using inherited socket fd=8, "10.30.60.87:9000"        
[26-Jun-2017 14:00:48] NOTICE: using inherited socket fd=8, "10.30.60.87:9000"        
[26-Jun-2017 14:00:48] NOTICE: fpm is running, pid 12696          
[26-Jun-2017 14:00:48] NOTICE: ready to handle connections

從驗證結果推斷

在 05:28:01這個時間有人給php-fpm 發送了SIGTERM信號,在這個點發生很可能是個定時任務, 確認果然是這樣 28 5 * * * root /etc/init.d/php-fpm restart> /dev/null

我們的 php-fpm 管理

  • init script 是  /etc/init.d/php-fpm
  • 其中stop 是  killproc -p ${pidfile} php-fpm, 顯然從日志結果來個是kill -TERM  . 文檔里也說了默認信號就是TERMkillproc sends signals to all processes that use the spec­ified executable. If no signal name is specified, the signal SIGTERM is sent.

看下這個情況下nginx的反應

總結原因

  • 業務請求時執行完 sendPresent這個動作后 , 還沒來得及寫mongo庫, php-fpm就剛好被 terminate 了,....  剛好趕上了

替代方案

  • 雖然php-fpm 沒有解釋 terminate 跟 graceful stop 的具體含義, 但猜的話前者是直接就終止程序的執行了,后者可能是溫柔點,把處理中的請求里的所有操作都執行完再殺死。。。
  • 總之 SIGTERM terminate 調php 工作進程太粗暴了,應該要改一下比較好
  • 改成 SIGUSER2  reload 方式
  • 改成 SIGQUIT方式 ,把killproc -p ${pidfile} php-fpm 這句 改成 killproc -p ${pidfile} php-fpm -QUIT
  • php-fpm 的worker 是計數n次后就會殺掉重新拉一個,如果用reload感覺功能重復了,根本沒必要定時重啟了, 我還是選 graceful stop(SIGQUIT) 吧
  • 當然還有個問題時,為啥要配置個定時重啟,將上面的內容發給sa看了

與sa 的問答

sa 說了3點意見

  • 建議看下 -QUIT 時,Nginx的狀態碼是否正常?另外在某種情況下,可能會造成 PHP-FPM 進程退出時間比較長,會影響部署嗎?
  • 用 reload(SIGUSER2) 而不是用SIGTERM停掉再啟動.
    我們之前的測試結果看 reload 之后,nginx會報 502,并不 graceful stop。建議做好測試確認,包括部署php代碼時是不是 reload?Bug #60961 Graceful Restart (USR2) isn't very graceful
  • php-fpm每天定時重啟腳本 這個定時腳本大概是在2012年部署的,當時是擔心 PHP-FPM 存在內存泄漏的情況而添加的。到現在是不是還適用?建議找一臺機器關掉定時腳本觀察一段較長時間看看。

我回復

  • SIGQUIT 是否正常還不清楚,但現在的默認 SIGTERM 是立即停掉php 進程是肯定不正常的 --  從nginx error log 看,對于nginx 和 php-fpm已經建立好的連接,錯誤是 “104: Connection reset by peer”; 準備去連的是“111: Connection refused”;
  • “111: Connection refused” 是還可以接受的,連不上而已,用戶稍后重試就可以;“104: Connection reset by peer” 這個就很難接受,這個錯我理解的意思是連接已經建好了,php突然terminate了,然后發了個RST分節給nginx;背后就表示當前請求可能只執行了一半動作,還有動作沒執行完,這可能就造成丟數據了。。。比如文章開頭說的這個問題
  • reload 那個其實就是 -USR2信號,這個bug看起來還沒解決。。。不過-USR2 應該說是偶現terminate,但 -TERM 肯定是必現terminate
  • 現在代碼部署邏輯是同步代碼+清理opcache和yac緩存, 不對php-fpm進程做操作
  • php-fpm 會自己對worker進程處理的請求數計數,達到一定數量就干掉再重新拉一個; 所以worker進程應該沒有什么內存泄露的問題; manager 進程就不清楚了,但我想概率應該是極其低的。這個適不適用感覺很難去證偽啊。。。
  • 所以要不找3臺機器, 一臺用 -QUIT, 一臺用 -USR2,  一臺去掉這個定時任務;先觀察下
  • sa 回復可以,我們自己看著辦

尾聲

改成 SIGQUIT 信號nginx里還是有 104: Connection reset by peer, 看來手冊里說SIGQUIT: graceful stop 也不能保證一次請求里的所有動作都執行完啊

最終結果 去掉這個定時重啟php-fpm 的任務, 已經3個多月了,沒發現問題,oh yeah~

參考文檔

  • php-fpm signal handler
  • php-fpm init script
  • killproc man page

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • Nginx和PHP-FPM的啟動、重啟、停止腳本分享
  • 監控php-fpm并自動重啟服務的shell腳本
  • Centos7重啟apache、nginx、mysql、php-fpm命令方法
  • PHP腳本監控Nginx 502錯誤并自動重啟php-fpm

標簽:十堰 銅陵 重慶 巴彥淖爾 臨沂 鷹潭 麗江 衡陽

巨人網絡通訊聲明:本文標題《php-fpm重啟導致的程序執行中斷問題詳解》,本文關鍵詞  php-fpm,重啟,導致,的,程序,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《php-fpm重啟導致的程序執行中斷問題詳解》相關的同類信息!
  • 本頁收集關于php-fpm重啟導致的程序執行中斷問題詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    蜜桃av一区二区在线观看| 成人黄色综合网站| 亚洲激情六月丁香| 成人理论电影网| 欧美乱妇15p| 成人欧美一区二区三区1314| 美女一区二区视频| 国产精品久久久久四虎| 久久婷婷久久一区二区三区| 免费在线观看精品| 国产欧美一区二区精品仙草咪| 日韩一级片网址| 久久这里只有精品首页| 亚洲品质自拍视频| 玖玖九九国产精品| 色先锋久久av资源部| 欧美一区二区三区四区久久| 亚洲色欲色欲www在线观看| 奇米四色…亚洲| 在线精品亚洲一区二区不卡| 久久久99久久| 日韩高清在线不卡| 99re成人精品视频| 精品国产乱码久久久久久蜜臀 | 国产精品无人区| 日韩影院在线观看| 成人激情动漫在线观看| 日韩视频在线观看一区二区| 亚洲最新在线观看| 成人涩涩免费视频| www久久精品| 热久久一区二区| 欧美日精品一区视频| 国产精品无遮挡| 国产91丝袜在线18| 欧美剧在线免费观看网站| 亚洲色欲色欲www| www.视频一区| 国产欧美精品一区| 岛国精品在线播放| 国产午夜精品久久久久久免费视| 麻豆国产91在线播放| 制服丝袜一区二区三区| 亚洲成人1区2区| 成人欧美一区二区三区视频网页| 成人免费高清在线| 最新热久久免费视频| 99精品热视频| 亚洲精品国产品国语在线app| 成人h版在线观看| 亚洲欧洲成人精品av97| 91一区二区在线观看| 亚洲女女做受ⅹxx高潮| 波多野结衣的一区二区三区| 欧美国产一区二区| 国产黑丝在线一区二区三区| 色综合久久天天| 精品成人一区二区| 久久夜色精品国产欧美乱极品| 中文一区二区在线观看| 午夜久久电影网| 黄色日韩三级电影| 欧美一区二区视频在线观看2020 | 美女一区二区三区| 精品日产卡一卡二卡麻豆| 美国毛片一区二区| 久久这里只精品最新地址| 国产精品77777| 欧美国产97人人爽人人喊| 成人毛片老司机大片| 色综合色综合色综合| 国产成人免费在线视频| 久久99精品国产91久久来源| 麻豆久久一区二区| 精品亚洲成a人在线观看| 喷白浆一区二区| 日韩 欧美一区二区三区| 日韩av网站在线观看| 国产精品一区专区| √…a在线天堂一区| 国产喷白浆一区二区三区| 日韩专区中文字幕一区二区| 欧美一区二区三区视频在线观看| 91精品国产综合久久福利| 91精品国产麻豆国产自产在线 | 久久久www成人免费无遮挡大片| 椎名由奈av一区二区三区| 国产日韩欧美a| 亚洲成人自拍一区| www.久久久久久久久| 免费高清在线一区| 成人黄色免费短视频| 久久久精品免费网站| 国产成人午夜视频| 亚洲视频1区2区| 日韩一区二区三区三四区视频在线观看| 麻豆一区二区三| 中文字幕一区二区三区色视频| 在线观看一区二区精品视频| 韩国av一区二区| 国产精品盗摄一区二区三区| 在线成人午夜影院| 国产91精品欧美| 欧美日韩一二三| 精品中文av资源站在线观看| 国产精品毛片高清在线完整版| 欧美日韩亚洲综合一区二区三区| 国产一区在线视频| 久久综合999| 亚洲成av人片在www色猫咪| 亚洲国产精品精华液2区45| 亚洲观看高清完整版在线观看| 91蜜桃免费观看视频| 欧美不卡在线视频| 韩国v欧美v日本v亚洲v| 5月丁香婷婷综合| 日韩精品亚洲专区| 日韩一区二区三区av| 日本美女一区二区三区| 欧美日韩国产小视频| 日韩国产欧美在线播放| 精品久久久久久久久久久院品网| 91在线视频观看| 亚洲午夜久久久久久久久电影院 | 精品一区二区免费视频| 激情六月婷婷久久| 国产亚洲欧美色| 国产精品久久久久久久久免费樱桃 | 欧美成人video| 一本大道久久a久久综合婷婷 | 青青草原综合久久大伊人精品| 欧美做爰猛烈大尺度电影无法无天| 久久精品亚洲麻豆av一区二区 | 欧美日韩中文字幕一区二区| ...xxx性欧美| 色菇凉天天综合网| 欧美色图免费看| 亚洲美女屁股眼交3| 国产欧美久久久精品影院| 久久久精品欧美丰满| 久久亚洲捆绑美女| 精品99999| 欧美电视剧在线观看完整版| 欧美男生操女生| 91精品在线观看入口| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲欧洲一区二区在线播放| 久久久国际精品| 欧美国产日韩a欧美在线观看| 国产亚洲欧洲997久久综合| 日韩制服丝袜先锋影音| 免费三级欧美电影| 蜜臀av在线播放一区二区三区| 日韩电影在线观看网站| 精品一区二区三区影院在线午夜| 国产一区二区精品久久| 国产一区二区在线看| 国产精品网站一区| 国产欧美日韩在线| 日韩和欧美一区二区三区| 亚洲欧美另类久久久精品| 国产日韩欧美a| 亚洲人成伊人成综合网小说| 中文乱码免费一区二区 | 精品影院一区二区久久久| 亚洲日本护士毛茸茸| 亚洲欧洲99久久| 中文字幕在线一区二区三区| 欧美狂野另类xxxxoooo| 91精品国产欧美一区二区| 日本成人中文字幕在线视频| 日韩一区精品字幕| 国产成人精品免费视频网站| 色妹子一区二区| 4438x亚洲最大成人网| 26uuu另类欧美亚洲曰本| 亚洲精品v日韩精品| 久久国产精品露脸对白| 1区2区3区国产精品| 亚洲精品免费在线观看| 国产精品久久久久久妇女6080| 精品少妇一区二区三区在线播放| 欧美日韩精品一区二区| 91精品国产综合久久精品| 色婷婷av一区| 欧美激情综合五月色丁香 | 欧美亚洲国产一区二区三区va | 精品国产免费人成电影在线观看四季| 在线播放欧美女士性生活| 国产欧美日韩久久| 日日夜夜精品视频天天综合网| 日韩一区二区在线免费观看| 欧美另类高清zo欧美| 国产欧美日本一区视频| 国产精品高潮呻吟久久| 一区二区久久久| 99免费精品视频| 国产婷婷一区二区| 国产精品1024久久| 国产精品一二三区在线|