平滑重启更新(GR机制)
生活随笔
收集整理的這篇文章主要介紹了
平滑重启更新(GR机制)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
什么是平滑啟動機制
- 是一種在協議重啟時保證轉發業務不中斷的機制。
什么時候用到平滑重啟
- 平滑重啟一般應用于業務更新或者版本發布過程中,能夠避免因為代碼發布重啟服務導致的暫時性服務不可用的影響。
ngnix 平滑重啟和平滑更新
- Nginx的進程分為master主進程和work工作進程,master進程主要管理事件信號接受和分發,所有的請求處理都由work進程處理并返回結 果,Nginx的平滑重啟或重載配置文件等升級,首先是向master發送重啟或重載配置文件信號,然后master告訴所有的work進程不再接受新的 請求,然后master另起新的work進程,最后告訴舊的work進程可以光榮退出了。
- 平滑更新 :在upgrade過程中,還涉及到3個信號(USR2、WINCH和QUIT)。
首先發送USR2信號給原master,原master進程會額外啟動一個master進程和若干worker進程,新舊worker進程同時提供對外服務。
第二步發送WINCH信號,原worker進程停止服務并退出。
最后發送QUIT信號給原master使之退出,只保留新的master和worker。
php-fpm 平滑重啟
- php-fpm的reload平滑重啟是指:假設128個php-cgi進程中有50個進程正在處理PHP程序,而剩余的78個進程處于閑置狀態,php-fpm接到平滑重啟信號后,會kill掉78個閑置進程,然后新啟動128個進程,新請求交給新啟動的進程來處理,而那50個進程,只有等到它們處理完自己當前正在執行的PHP程序后,才會被干掉。
- php-fpm master 進程可以理解以下的信號:
- INT, TERM 立刻終止
- QUIT 平滑終止
- USR1 重新打開日志文件
- USR2 平滑重載所有worker進程并重新載入配置和二進制模塊
- 關閉php-fpm:
- kill -INT?cat /usr/local/php/var/run/php-fpm.pid
- 平滑重啟php-fpm:
- kill -USR2?cat /usr/local/php/var/run/php-fpm.pid
- 注意php-fpm.pid文件需要到到php-fpm.conf配置文件里面打開: [global]
; Pid file
; Note: the default prefix is /usr/local/php/var
; Default Value: none
pid = run/php-fpm.pid
//即,將pid(;pid = run/php-fpm.pid)前的;去掉。
```
參考:https://www.cnblogs.com/justdoyou/p/7152334.html
http://ask.apelearn.com/question/11387
來源:https://www.cnblogs.com/frankltf/p/8862492.html
總結
以上是生活随笔為你收集整理的平滑重启更新(GR机制)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql-innoDB存储引擎(事务,
- 下一篇: Master选举原理