PHP配置調(diào)優(yōu)

PHP 配置文件調(diào)優(yōu)

內(nèi)存

運(yùn)行 PHP 時(shí)需要關(guān)心每個(gè) PHP 進(jìn)程要使用多少內(nèi)存歼疮, php.ini中的 memory_limit設(shè)置用于設(shè)定單個(gè) PHP 進(jìn)程可以使用的系統(tǒng)內(nèi)存最大值。

這個(gè)設(shè)置的默認(rèn)值是 128M诈唬,這對(duì)于大多數(shù)中小型 PHP 應(yīng)用來(lái)說(shuō)或許合適韩脏,不過(guò),如果運(yùn)行的是微型 PHP 應(yīng)用铸磅,可以降低這個(gè)值赡矢,以便節(jié)省系統(tǒng)資源杭朱,反之,如果運(yùn)行的是內(nèi)存集中型 PHP 應(yīng)用吹散,可以增加這個(gè)值弧械。這個(gè)值的大小由可用的系統(tǒng)內(nèi)存決定,確定給 PHP 分配多少值是一門(mén)藝術(shù)空民,決定給 PHP 分配多少內(nèi)存刃唐,以及能負(fù)擔(dān)起多少個(gè) PHP-FPM 進(jìn)程時(shí),可以根據(jù)以下維度信息進(jìn)行判斷:

一共可以分配給 PHP 多少內(nèi)存袭景?

每個(gè) PHP 進(jìn)程平均耗費(fèi)多少內(nèi)存唁桩?

能負(fù)擔(dān)起多少個(gè) PHP-FPM 進(jìn)程?

有足夠的系統(tǒng)資源嗎耸棒?

Zend Opcache

opcache.memory_consumption = 64:

為操作碼緩存分配的內(nèi)存(單位是MB),分配的內(nèi)存量應(yīng)該可以保存應(yīng)用中所有 PHP 腳本編譯得到的操作碼报辱,這個(gè)值根據(jù)應(yīng)用的體量可以設(shè)置成不同大小的值与殃。

opcache.interned_strings_buffer = 16:

用來(lái)存儲(chǔ)駐留字符串的內(nèi)存量(單位是MB),什么是駐留字符串呢碍现?PHP 解釋器在背后會(huì)找到相同字符串的多個(gè)實(shí)例幅疼,把這個(gè)字符串保存在內(nèi)存中,如果再次使用相同的字符串昼接,PHP 解釋器會(huì)使用指針爽篷,這么做的目的是節(jié)省內(nèi)存。默認(rèn)情況下慢睡,PHP 駐留字符串會(huì)隔離在各個(gè) PHP 進(jìn)程中逐工,這個(gè)設(shè)置能讓 PHP-FPM 進(jìn)程池把所有進(jìn)程駐留字符串存儲(chǔ)到共享的緩沖區(qū)中,以便在 PHP-FPM 進(jìn)程池中的多個(gè)進(jìn)程之間引用駐留字符串漂辐,這樣能節(jié)省更多內(nèi)存泪喊。

opcache.max_accelerated_files = 4000:

操作碼緩存中最多能存儲(chǔ)多少個(gè) PHP 腳本,這個(gè)值的區(qū)間是 2000 到 100000 之間髓涯,這個(gè)值一定要比 PHP 應(yīng)用中的文件數(shù)大袒啼。

opcache.validate_timestamps = 1:

這個(gè)設(shè)置的值為1時(shí),經(jīng)過(guò)一段時(shí)間后PHP會(huì)檢查 PHP 腳本的內(nèi)容是否有變化纬纪,檢查的時(shí)間間隔由opcache.revalidate_freq 設(shè)置指定蚓再。如果這個(gè)設(shè)置的值為0,PHP 不會(huì)檢查 PHP 腳本的內(nèi)容是否有變化包各,我們必須自己動(dòng)手清除緩存的操作碼摘仅。建議在開(kāi)發(fā)環(huán)境中設(shè)置為1,生產(chǎn)環(huán)境中設(shè)置為0髓棋。

opcache.revalidate_freq

= 0:

設(shè)置多久(單位是秒)檢查一次 PHP 腳本內(nèi)容是否有變化实檀。設(shè)置為0秒的含義是僅當(dāng)opcache.validate_timestamps 設(shè)置為1時(shí)惶洲,才會(huì)在每次請(qǐng)求時(shí)都重新驗(yàn)證 PHP 文件,因此膳犹,在開(kāi)發(fā)環(huán)境中每次都會(huì)重新驗(yàn)證 PHP 文件恬吕,在生產(chǎn)環(huán)境中則不驗(yàn)證。

opcache.fast_shutdown =

1:

這么設(shè)置能讓操作碼使用更快的停機(jī)步驟须床,把對(duì)象析構(gòu)和內(nèi)存釋放交給 Zend Engine 的內(nèi)存管理器完成铐料。

文件上傳

如果你的應(yīng)用允許上傳文件,最好設(shè)置最大能上傳的文件大小豺旬。除此之外钠惩,最好還要設(shè)置最多能同時(shí)上傳多少個(gè)文件:

file_uploads = 1

upload_max_filesize

= 10M

max_file_uploads = 20

如果非要上傳大文件,Web 服務(wù)器的配置也要做相應(yīng)調(diào)整族阅。除了在 php.ini 中設(shè)置之外篓跛,還要調(diào)整 Nginx 虛擬主機(jī)配置中的 client_max_body_size 設(shè)置。

最長(zhǎng)執(zhí)行時(shí)間

php.ini文件中的 max_execution_time 用于設(shè)置單個(gè) PHP 進(jìn)程在終止之前最長(zhǎng)可運(yùn)行時(shí)間坦刀。這個(gè)設(shè)置默認(rèn)是 30 秒愧沟,建議將其設(shè)置為 5 秒:

max_execution_time = 5

處理會(huì)話

PHP 默認(rèn)的會(huì)話處理程序會(huì)拖慢大型應(yīng)用,因?yàn)檫@個(gè)處理程序會(huì)把會(huì)話數(shù)據(jù)存儲(chǔ)在硬盤(pán)中鲤遥,需要?jiǎng)?chuàng)建不必要的磁盤(pán) I/O沐寺,浪費(fèi)時(shí)間。

緩沖輸出

output_buffering = 4096

implicit_flush = false

如果想要修改輸出緩沖區(qū)的大小盖奈,確保使用的值是4(32位系統(tǒng))或8(64位系統(tǒng))的倍數(shù)混坞。

真實(shí)路徑緩存

realpath_cache_size= 64K

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市钢坦,隨后出現(xiàn)的幾起案子究孕,更是在濱河造成了極大的恐慌,老刑警劉巖场钉,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚊俺,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡逛万,警方通過(guò)查閱死者的電腦和手機(jī)泳猬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)宇植,“玉大人得封,你說(shuō)我怎么就攤上這事≈赣簦” “怎么了忙上?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)闲坎。 經(jīng)常有香客問(wèn)我疫粥,道長(zhǎng)茬斧,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任梗逮,我火速辦了婚禮项秉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘慷彤。我一直安慰自己娄蔼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布底哗。 她就那樣靜靜地躺著岁诉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪跋选。 梳的紋絲不亂的頭發(fā)上涕癣,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音野建,去河邊找鬼属划。 笑死,一個(gè)胖子當(dāng)著我的面吹牛候生,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绽昼,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼唯鸭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了硅确?” 一聲冷哼從身側(cè)響起目溉,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎菱农,沒(méi)想到半個(gè)月后缭付,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡循未,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年陷猫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片的妖。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绣檬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嫂粟,到底是詐尸還是另有隱情娇未,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布星虹,位于F島的核電站零抬,受9級(jí)特大地震影響镊讼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜平夜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一蝶棋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧褥芒,春花似錦嚼松、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至坷牛,卻和暖如春罕偎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背京闰。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工颜及, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蹂楣。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓俏站,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親痊土。 傳聞我的和親對(duì)象是個(gè)殘疾皇子肄扎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容