鍍金池/ 問(wèn)答/PHP/ 使用PHP大量采集數(shù)據(jù),如何提高訪(fǎng)問(wèn)性能?

使用PHP大量采集數(shù)據(jù),如何提高訪(fǎng)問(wèn)性能?

問(wèn)題描述:
使用php開(kāi)發(fā)的采集國(guó)外網(wǎng)站的數(shù)據(jù),以便進(jìn)行測(cè)試,數(shù)據(jù)保存為txt格式,存放在服務(wù)器上,當(dāng)需要訪(fǎng)問(wèn)的時(shí)候,在使用php讀取txt中的數(shù)據(jù),并返回到用戶(hù)。
當(dāng)服務(wù)器運(yùn)行一段時(shí)間以后,通過(guò)網(wǎng)址訪(fǎng)問(wèn)服務(wù)器上的資源時(shí),打開(kāi)速度挺卡的,剛開(kāi)始的時(shí)候還不會(huì)。
注:
網(wǎng)址跟之前網(wǎng)站的是一樣的,只是把頂級(jí)域名緩存我們自己的。
數(shù)據(jù)是觸發(fā)采集的,第一次會(huì)遠(yuǎn)程采集數(shù)據(jù)到本地,并返回給用戶(hù),第二次才從本地讀取。

問(wèn)題:
1.即使數(shù)據(jù)量超多的時(shí)候,也能做到秒開(kāi)呢
2.瓶頸在哪??jī)?nèi)存還是IO
3.使用一段時(shí)間以后,打開(kāi)速度會(huì)很卡,重啟服務(wù)器后會(huì)好多了
4.如果將數(shù)據(jù)保存到MySQL數(shù)據(jù)庫(kù)的時(shí)候,應(yīng)該會(huì)更卡吧,目前是純文本,只是訪(fǎng)問(wèn)的時(shí)候,在通過(guò)一個(gè)簡(jiǎn)單的路徑匹配算法,使用php去讀取文件,并返回給用戶(hù)
5.有沒(méi)有相關(guān)書(shū)籍可以學(xué)習(xí)下?
6.將PHP版本升級(jí)到php7,是否可以緩解?

回答
編輯回答
憶當(dāng)年

“在通過(guò)一個(gè)簡(jiǎn)單的路徑匹配算法,使用php去讀取文件,并返回給用戶(hù)” -————是否可以通過(guò)url重寫(xiě)直接做成靜態(tài)的

2018年9月11日 19:10
編輯回答
憶當(dāng)年

卡是不是讀取的文件很大

2017年3月20日 08:52
編輯回答
浪婳

小文件太多了, 肯定卡,反而我覺(jué)得放數(shù)據(jù)庫(kù)不會(huì)太卡,

2018年4月11日 05:41
編輯回答
孤毒

把文件切割呀,文件按日期進(jìn)行存儲(chǔ)

2017年1月26日 09:47
編輯回答
獨(dú)白

是不是PHP-FPM內(nèi)存泄漏導(dǎo)致內(nèi)存耗盡
是不是這個(gè)注釋沒(méi)去掉,未設(shè)置每個(gè)php-fpm進(jìn)程接受的請(qǐng)求數(shù)
未設(shè)置進(jìn)程就不會(huì)掛掉會(huì)不斷的累積占用內(nèi)存(一個(gè)請(qǐng)求退出會(huì)有部分信息留在進(jìn)程中,最終導(dǎo)致內(nèi)存耗盡)

;pm.max_requests = 500
2018年5月30日 19:26
編輯回答
安淺陌
  • 性能瓶頸可能提醒在:IO、帶寬、內(nèi)存、并發(fā)問(wèn)題
  • 采集數(shù)據(jù)最好用MQ去采集。避免未知并發(fā)量導(dǎo)致的服務(wù)器崩潰
  • 對(duì)于直接讀取文本的,可以考慮直接訪(fǎng)問(wèn)文本文件(類(lèi)似讀取js、css靜態(tài)資源;不經(jīng)過(guò)php,減少額外性能消耗);并可考慮增加CDN
2017年4月8日 21:18