最近測試人員不時有反饋,APP首頁打開會出現除了基本的頁面佈局,須要展現數據的地方都是空白。php
想着最近首頁接口有過調整,新增數據。會不會是接口改動致使的??html
但APP首頁接口都是讀取redis的,應該不至於出現接口異常的問題啊!!nginx
手上原本有迭代任務進行中,沒去看這個問題。laravel
昨天快下班那會手上任務快作完了。上服務器看看nginx日誌,php日誌,同時登陸阿里雲服務器管理控制檯查看ecs機器的內存和cpu使用記錄,redis使用狀況。redis
發現問題出現得有規律,通常是運營人員在管理後臺發佈消息推送,隨後幾分鐘就會出現resquest_time耗時比較厲害。平時大部分接口0.01-0.09秒接口請求完成調用返回。但發佈消息推送後,接口調用記錄顯示耗時上升厲害0.1秒->0.5秒->1秒->3秒->7秒,最多的達到15點幾秒。服務器
查看最近的nginx錯誤日誌:
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: ***php7
網上搜索相關資料,找到以下:app
https://blog.csdn.net/leonnew/article/details/79738593框架
憑直覺首要排除1和3,直接去看2的問題,看php錯誤日誌:運維
搜索「WARNING: [pool www] server reached pm.max_children setting (5), consider raising it」 錯誤緣由,找到以下:
https://lirongyao.com/server-reached-pm-max_children-setting.html
看php配置:
估計是運維搭建生產環境把php-fpm啓動後進程數配置過小,和運維溝通後,發個郵件讓運維更改php7配置。
中午吃飯時候運維把配置給改了重啓,不久後運營人員那邊新發一個push消息推送。
再上生產服務器,竟沒有錯誤日誌了。。又打開APP,同事們沒有出現白屏無數據的狀況,我手機偶現白屏一次。
PHP-FPM配置已經改了啊,爲啥仍是有白屏??
當即上阿里雲管理後臺查看日誌服務,看到push發出後,單是首頁的有個接口一分鐘內超出280的調用。
這讓我想起項目剛上線不久,有對項目使用的laravel框架接口調用次數限制由默認60次一分鐘上調到一分鐘200過。
手機偶爾白屏應該就是laravel框架這個限制次數致使的!
再上調laravel次數限制爲500上生產,等運營再次發送push消息推送,APP已不見白屏的狀況。
登陸阿里雲管理後臺查看日誌服務,首頁接口調用時間基本正常,最長的沒超過0.2秒:
若是不作php-fpm配置的修改,正常狀況下,沒人攻擊服務器惡意搗亂什麼的,不會出現什麼問題。
公司商務近期在作該APP推廣,通過我這邊已經接入頭條app廣告,熱葫蘆,小豆故事,還有接入測試完成即將上線的百度app廣告。
用戶數正在不斷上升。運營人員消息推送發佈,同一時間大量的用戶打開APP,接口調用急劇增長,須要啓動php進程數會被迅速拉起,原有的配置已經很難知足需求。