環境:windows+thinkphp+apache+mysql
問題描述:
開發服務器上有個項目,總是時不時的會出現加載時間特別長的情況,有時4、5秒,有時11、12秒才能看到最終的頁面,如圖:

解決過程:
首先是百度,這么多年養成的習慣,沒辦法。百度上一搜,會出來各種關於“waiting(TTFB)時間過長”的解決方案,但一一看過之后,都無法解決我的問題。畢竟,每個人碰到的情況都不一樣。
既然百度不靈了,我只能用排除法。
首先,操作系統層面的原因,基本是可以排除的,那么多人都在用,如果有問題,那肯定不是我一個人能解決的了。
thinkphp,因為后來發現,開發服務器上所有的項目,都會時不時的出現這個問題,而這些項目都是基於thinkphp開發的,這么一想,thinkphp的嫌疑最大,沒跑了,肯定就是你!但后來經過嚴謹的測試,發現thinkphp對於請求的整個處理時間,始終維持在0.2秒以內,看來這個鍋不能讓thinkphp來背,冤枉它了。
接着是mysql,這個很快就被排除了,因為我訪問的頁面,只是一個簡單的登錄頁面,根本就沒有數據庫方面的任何處理。
最后是apache服務器,如果上面的幾個因素都沒問題,那只能是你了,但是很遺憾,經過和本地對比,apache服務器也沒問題!
那么,問題究竟出在哪?我試着在本地和開發服務器上,搭建了一個一模一樣的運行環境,結果本地每次都是妥妥的秒開,沒有絲毫卡頓現象!這么一來,我真的沒有頭緒了,就這樣,問題一直被擱置了5、6 個月,這期間,只能忍受着開發服務器抽風似的時好時壞。
最終解決:
時間,來到了2018年4月,有一天,同事又開始大發牢騷了,他說:測試環境什么鬼?現在是越來越慢了,受不了了!
“越來越慢”,一語驚醒夢中人。當時我好像被閃電擊中了一般,靈光一現,隱隱中,感覺離解決問題就一步之遙了!
什么會導致越來越慢?日志!這個詞在我腦海中一閃而過!只有日志,每天日積月累,最終影響磁盤I/O的性能,從而對我們的程序造成影響。那究竟是什么日志呢?數據庫日志,程序日志,apache日志,我一一檢查了下,結果蒼天不負有心人,看到apache日志的時候,我驚呆了,一個access.log日志文件,竟然達到了800多M,都快一個G了!看來罪魁禍首就是你了,果斷的刪除它,然后給apache日志做了按天歸檔處理。
再次訪問開發服務器,秒開的感覺,就是爽!
在此也提醒廣大同胞們,apache服務器安裝好后,一定要做按天歸檔處理,不要圖省事,將所有日志放在一個文件中。
另外,如果你的項目是基於Zend Server部署的,請記得關閉以下參數,因為我發現,這些參數開啟后,也會時不時的出現waiting(TTFB)時間過長的情況。
原文鏈接:https://blog.csdn.net/tdcqfyl/article/details/80073824

