公司的微信公衆號項目,架構是使用了nginx負載均衡,隨着幾回的推廣活動,用戶從原來的1萬增加到了如今的3萬,在這個時候問題就出現了,每次推廣活動或者推送圖文消息,就會出現崩潰的狀況,持續半個小時。這個問題很嚴重,致使流失了不少用戶。
一開始的時候我考慮是數據庫的問題,由於平時數據庫的查詢速度就比較慢,而且負載均衡分發到兩臺服務器都是用同一個數據庫,數據庫出了問題,合情合理。可是無奈把數據庫遷移到另一臺服務器以後,查詢速度並無什麼改善。靜下心來反思本身先入爲主的觀念可能影響了判斷。而後看到微信公衆號的告警排查指南。說有多是nginx的問題。因而決定檢查一下nginx的錯誤日誌。果真在推廣時間段內查找到大量的Too many open files日誌。php
找到問題那就好解決了。百度一下。在下面連接找到了解決方法 http://www.php100.com/html/program/nginx/2013/0905/5518.html (這樣引用做者不會告我把) 增大linux單線程可打開最大文件句柄。,而且順帶修改一下nginx的最大連接數。html
問題緣由。linux默認單線程打開的最大文件數不能超過1024。而nginx的實現機制是單線程輪詢機制,也就是說,雖然不少連接,可是實際上是在一個線程裏面運行得。linux
我把緣由告知技術總監,想讓他協助我修改linux配置,由於服務器是多項目共用的,無奈他說之前他遇過這個問題,交給他就好了。又沒有了show time~~nginx