国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP|PHP調優入門

netScorpion / 3463人閱讀

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

php.ini文件

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

composer require psecio/iniscan

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

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

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

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

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

可以在命令行中執行top命令看查看運行中的進程的實時統計數據。

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

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

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

OPcache

該擴展用于緩存操作碼。

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

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

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

我的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

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

opcache.interned_strings_buffer = 16

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

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

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

opcache.max_accelerated_files = 4000

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

opcache.validate_timestamps = 1

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

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

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

最長執行時間
max_execution_time = 5 // s

也可以使用set_time_limit()來覆蓋

處理會話

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

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

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

修改配置

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

緩沖輸出的目的:在較少的塊中發送較多的數據

output_buffering = 4096
implicit_flush = false

確保輸出大小是4或8的倍數

真實路徑緩存

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

這個緩存叫真實路徑緩存

realpath_cache_size = 64k

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

參考

Modern PHP

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

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

相關文章

  • 記一次 Laravel 應用性能調優經歷

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

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

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

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

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

    luckyw 評論0 收藏0

發表評論

0條評論

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