成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP|PHP調優(yōu)入門

netScorpion / 3475人閱讀

摘要:另外,可以在腳本的最后調用輸出當前腳本小號的最大內存量。根據(jù)分配的內存總量來估算進程數(shù)。該擴展用于緩存操作碼。默認情況下,駐留的字符串會隔離在各個進程中。檢查腳本的內容是否有變化。在腳本末尾可以叫上獲得真實的路徑緩存使用大小。

php.ini文件

有這么一個工具,可以檢查ini文件是否使用了安全方面的最佳實踐

composer require psecio/iniscan

htps://github.com/psecio/iniscan
內存

php.ini中的memory_limit設定單個PHP進程可以使用的系統(tǒng)內存最大值。

一共能分配給PHP多少內存?

512MB是絕對足夠的。但是還是要看具體情況。

單個PHP進程平均消耗多少內存?

可以在命令行中執(zhí)行top命令看查看運行中的進程的實時統(tǒng)計數(shù)據(jù)。

另外,可以在PHP腳本的最后調用memory_get_peak_usage()輸出當前腳本小號的最大內存量。

能負擔起多少個PHP-FPM進程?

平均每個php進程要消耗15MB內存。根據(jù)分配的內存總量memory_limit來估算進程數(shù)。

OPcache

該擴展用于緩存操作碼。

先來分析每次HTTP請求時通常是如何處理PHP腳本的。

首先,nginx把HTTP請求轉發(fā)給PHP-FPM,PHP-FPM再把請求交給某個PHP子進程處理。PHP進程找到相應的php腳本,讀取腳本,把php腳本編譯成操作碼,然后執(zhí)行編譯得到的操作碼,生成響應,發(fā)給nginx。

我們可以緩存編譯php腳本得到的操作碼,直接從緩存中讀取并執(zhí)行編譯好的操作碼。

我的php.ini中opcache的配置

opcache.memory_consumption = 64
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 4000
opcache.validate_timestamps = 1
opcache.revalidate_freq = 0
opcache.fast_shutdown = 1
opcache.memory_consumption = 64

為緩存分配的內存量。根據(jù)應用大小來決定。

opcache.interned_strings_buffer = 16

用來存儲駐留字符串的內存量。

什么是駐留字符串?PHP解釋器在背后會找到相同字符串的多個實例,把這個字符串保存在內存中,如果再次使用相同的字符串,php解釋器會使用指針。默認情況下,php駐留的字符串會隔離在各個php進程中。

這個設置能讓php-fpm進程池中所有進程把駐留字符串存儲到共享的緩沖區(qū)中,以便在php-fpm進程池中的多個進程之間引用駐留字符串。

opcache.max_accelerated_files = 4000

操作碼緩存中最多能存儲的php腳本個數(shù),一定要比應用中文件數(shù)量大。

opcache.validate_timestamps = 1

檢查php腳本的內容是否有變化。值為0則不檢查。

文件上傳
file_uploads = 1
upload_max_filesize = 10M
max_file_uploads = 3

在配置上傳非常大的文件時,對nginx的client_max_body_size也要修改

最長執(zhí)行時間
max_execution_time = 5 // s

也可以使用set_time_limit()來覆蓋

處理會話

php的會話處理程序會把會話數(shù)據(jù)存儲在硬盤中。其實可以使用memcached或redis存儲在內存中。

安裝連接memcached的PECL擴展來使用memcahced

http://pecl.php.net/package/memcached

修改配置

session.save_handler = "memcached"
session.save_path = "127.0.0.2:11211"
緩沖輸出

緩沖輸出的目的:在較少的塊中發(fā)送較多的數(shù)據(jù)

output_buffering = 4096
implicit_flush = false

確保輸出大小是4或8的倍數(shù)

真實路徑緩存

PHP會緩存應用使用的文件路徑,這樣每次包含或倒入文件時就不需要不斷搜索路徑了。

這個緩存叫真實路徑緩存。

realpath_cache_size = 64k

在腳本末尾可以叫上print_r(realpath_cache_size())獲得真實的路徑緩存使用大小。

參考

Modern PHP

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/21667.html

相關文章

  • 記一次 Laravel 應用性能調優(yōu)經(jīng)歷

    摘要:為了一探究竟,于是開啟了這次應用性能調優(yōu)之旅。使用即時編譯器和都能輕輕松松的讓你的應用程序在不用做任何修改的情況下,直接提高或者更高的性能。 這是一份事后的總結。在經(jīng)歷了調優(yōu)過程踩的很多坑之后,我們最終完善并實施了初步的性能測試方案,通過真實的測試數(shù)據(jù)歸納出了 Laravel 開發(fā)過程中的一些實踐技巧。 0x00 源起 最近有同事反饋 Laravel 寫的應用程序響應有點慢、20幾個并...

    warkiz 評論0 收藏0
  • PHP技術棧

    摘要:熟悉編程,對于網(wǎng)絡模型有一定的認知,熟悉多路復用技術。對主從延遲能有效解決。能夠支持對于千萬級流量網(wǎng)站的正常開發(fā)維護工作。結束語技術無止境,未來有更多可能。 本文旨在給要學習 PHP 的新手一個大概的認知輪廓,在心里有個學習的結構,有的放矢,避免走太多彎路。大神請忽略。 入門階段 預備知識 1、掌握基本HTML、JS、CSS語法;熟悉 Bootstrap。 參考: https:/...

    LinkedME2016 評論0 收藏0
  • PHP技術棧

    摘要:熟悉編程,對于網(wǎng)絡模型有一定的認知,熟悉多路復用技術。對主從延遲能有效解決。能夠支持對于千萬級流量網(wǎng)站的正常開發(fā)維護工作。結束語技術無止境,未來有更多可能。 本文旨在給要學習 PHP 的新手一個大概的認知輪廓,在心里有個學習的結構,有的放矢,避免走太多彎路。大神請忽略。 入門階段 預備知識 1、掌握基本HTML、JS、CSS語法;熟悉 Bootstrap。 參考: https:/...

    luckyw 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<