php共享內存
L2是CPU的2級緩存,大約是內存的10倍讀寫速度,對CPU的運算速度起到大約%5的影響(要看多大的2級緩存)
L2 2*512K的意思是雙核CPU每個核心佔用512K。這個大概是AMD的U
1024K這個是雙核共享,就是每個核心用多少就分多少。這個大概是INTEL的U
❷ PHP哪些場景適合使用內存共享
PHP共享內存可以在單台伺服器上進行進程間的數據通信和共享,但不能跨伺服器,memcache和redis可專門獨立部署做為內存伺服器。
❸ php 如何做到真真的"全局變數"
貌似沒有吧. 他所謂的全局變數,必須每次都要引用的吧.比如說
class 就使用 static function 裡面就用global
不可能把全局變數寫在a.php ,而b.php不調用a,php的話那就用不了.
必須掉用 a.php才能用
----
每次都要去讀取文件,沒辦法,php就這樣。除非你使用 session 不過有點重量級。或者使用cookie
------------
我建議你到phpchina 那去問吧,那裡的高手多。
❹ 多個session共享數據如何實現 - PHP進階討論
一直想把共享內存用起來,php相應是基於進程的,進程見的數據共享目前大多隻能通過文件或db,不像Java那樣,在VM進程間可以共享些數據。想整個後台Server,用python什麼的寫,與前台php腳本通過消息隊列或共享內存進行交換或控制,解決php基於進程模式的一些問題
❺ php-fpm的FAQ
Q:php-fpm 可以和 ZendOptimize 一起用嗎?
A:完全可以。
Q:php-fpm 可以和 ZendPlatform、xcache、eAccelerator、APC 等的優化器一起用嗎?
A:是的。php-fpm 的架構和任何一種用於高速 opcode 緩存的共享內存都適用。唯一的限制是:所有的 worker 進程只能適用一個緩存,即使它們用不同的 uid/gid 運行
Q:為什麼我要給php打補丁呢?spawn-fcgi 不需要這樣!
A:php-fpm 的創建是為了增強方便管理。沒有打過補丁的php不能做到:
平滑重啟php而不丟失請求,包括升級 php二進制文件以及/或者 擴展。
用不同的 uid / gid / chroot 環境運行 worker 進程
所有的設置只有一個配置文件
根據負載動態請求 (TODO)
對php請求實時統計性能 (TODO)
Q:為什麼要用 root 運行php-fpm 呢?這安全嗎?
A:用 root 啟動php-fpm 只有在你打算用不同 uid/gid 的 php 來處理請求時才有意義。比如,在共享主機上的不同站點。因為只有在 master 進程用 root 運行的時候,才可以建立不同 uid/gid 的子進程。這是相當安全的。master 進程自己從來不會去處理請求。
在任何情況下,php-fpm 都不會用 root 身份來處理請求。
Q:php-fpm 可以加速 php 腳本處理速度嗎?
A:不,它不會影響處理速度。不過,如果你使用一些特殊特性,對於一些特定的請求還是可以有性能提升的。
Q:如果我把我的網站從 mod_php遷移到php-fpm ,我會得到性能提升嗎?
A:通常,當有伺服器上有大量空閑內存可用時,能從遷移到 php-fpm 中得到的性能提升可能不大。但是如果內存並不充裕,性能提升還是很可觀的,在某些情況下可以達到 300-500%。這可能是由於 nginx +php-fpm 一般會比 Apache + mod_php 使用更少的內存。而且 VFS 緩存會由於更多的空餘內存而更有效地工作。
Q:php-fpm 將來會被官方的 php 包含嗎?
A:我希望如此。php-fpm 代碼採用的是GPL許可證 。所以現在php-fpm 的代碼與 php 協議(類似BSD許可證)並不匹配 。這是臨時性措施。這樣的選擇是為了簡化開發過程。一旦代碼的功能完備,比如自適應生成子進程和其他一些東西,協議會改為一個相匹配的。之後,php-fpm 會正式發布給 php 開發團隊,並被建議包含。

❻ 所有php文件都已經緩存到eaccelerator的共享內存中了,訪問網站時怎麼還從硬碟中讀取php文件呢
eaccelerator 加速器 , 主要是通過緩存opcode .以免每次執行都重復編譯.
可以通過設置 緩存的opcode存儲在內存或硬碟中.
如果設置了存儲在硬碟中. zend 引擎執行腳本的時候. 還是會去讀取硬碟里的opcode文件.
另外eaccelerator配置項里有個設置檢查文件更新的 . 如果開啟 , 也還是會產生硬碟io操作的.
❼ wincache 怎麼提高php效率
目錄1 功能概述2 安裝3 檢查是否開啟4 適用說明 功能概述 Windows Cache Extension
是一款在windows操作系統上提高php運行效率的加速器,主要提升php性能以下幾方面: 1.
在共享內存中緩存php腳本文件內容,幫助減少文件I/O的次數。 2. 緩存文件的相對路徑為絕對路徑,以減少文件系統的訪問次數。 3.
你可以去後盾人平台看看,裡面的東西不錯
❽ PHP 腳本佔用多少內存為好
zend optimizer可以模擬JAVA一次編譯到處執行的功能。不過PHP畢竟是PHP,與JAVA不是一回事。如果感覺系統資源使用情況較多,可以考慮使用memocache這樣的緩存。
❾ php 什麼是zendopcache
ZendOpcache的配置詳解
ZendOpcache(ZendOptimizerPlus)的配置詳解
前言
PHP開發小組背後的公司 Zend 近期開源了其旗下的 PHP 加速產品 Zend Optimizer, 新項目託管於 Github 項目名稱為 ZendOptimizerPlus (Zend Optimizer +).本人禁不住忽悠, 忍不住就去嘗試了一下.
簡介
Zend Optimizer + 通過 opcode 的緩存和優化來提速 PHP 的執行.它通過在共享內存里存儲預編譯的PHP腳本來提高PHP的*能.這一*作消除了從磁碟讀取PHP文件然後編譯的過程.此外, 此外它還提供了少量的位元組*優化模式使得代*執行更快.
適用*
當前版本的 Zend Optimizer + 適用於 PHP 5.2.*, 5.3.*, 5.4.* 以及 PHP-5.5 開發版分支. 將來也許會取消對 PHP 5.2 的支持.
安裝
首先下載 Zend Optimizer + 的源*:
http://pecl.php.net/package/ZendOpcache
目前, 我使用的是 7.0.1 的 beta 版, 下載後解壓, 編譯:
wget http://pecl.php.net/get/zendopcache-7.0.1.tgz
tar xzf zendopcache-7.0.1.tgz
cd zendopcache-7.0.1
phpize
./configure --with-php-config=/path_to_php_bin/php-config
make
make install
配置
編輯 php.ini
zend_extension=/...full_path.../opcache.so
#以下是開發組推薦配置
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
重啟你的 php cgi 或者 Apache.
配置參數詳解
opcache.enable(默認值:1)
Zend Optimizer + 的開關, 關閉時代*不再優化.
opcache.memory_consumption(默認值:64)
Zend Optimizer + 共享內存的大小, 總共能夠存儲多少預編譯的 PHP 代*(單位:MB).
opcache.interned_strings_buffer(默認值:4)
Zend Optimizer + 中interned字元串的占內存總量.(單位:MB)
opcache.max_accelerated_files(默認值:2000)
Zend Optimizer + 哈希表中鍵數量的最大值(一個腳本文件應當是對應一個key的,所以應當就是允許緩存的文件最大數量).這個值實際上是素數列表{ 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 }中第一個大於設定值的數字.值設定范圍: 200 – 100000
opcache.max_wasted_percentage(默認值:5)
「浪費」的內存達到此值對應的百分比,就會發起一個重啟調度.
opcache.use_cwd(默認值:1)
開啟這條指令, Zend Optimizer + 會自動將當前工作目錄的名字追加到腳本鍵上, 以此消除同名文件間的鍵值命名沖突.關閉這條指令會提升*能,但是會對已存在的應用造成破壞.
opcache.validate_timestamps(默認值:1)
禁用時, 您必須手動重置Zend Optimizer +或重新啟動Web伺服器,以使文件系統的更改生效. 檢查的頻率是由指令 「opcache.revalidate_freq」 控制.
opcache.revalidate_freq(默認值:2)
多久(以秒為單位)檢查文件時間戳以改變共享內存的分配.」1″ 表示一秒校驗一次, 但是是每個請求一次. 「0″ 表示總是在校驗.
❿ php性能加速之opcache
OPcache 是一個通過將 PHP 腳本預編譯的位元組碼存儲到共享內存中來提升 PHP 的性能的PHP擴展。 存儲預編譯位元組碼的好處就是 省去了每次載入和解析 PHP 腳本的開銷。PHP 5.5.0 及後續版本中已經綁定了 OPcache 擴展。
首先,我們來先大致了解下http-->nginx-->php-fpm-->php處理的流程機制
http request ---> nginx(代理)----> php-fpm(master 進程,分配)----> php-fpm(worker處理 ) ---->php-cgi(1.啟動ZEND引擎,載入配置,載入mole,2.初始化php腳本進行詞法分析,語法分析,生成語法樹,3.ZEND引擎編譯語法樹,生成可執行位元組碼。4.執行位元組碼,返回處理結果)
opcache 就緩存了php腳本預編譯的位元組碼避免每次處理請求都重復執行(php-cgi處理的1,2,3)步驟,這樣可以使得php性能大大提高。
php.ini
1.重啟php-fpm
2.列印phpinfo(),看到有ZEND OPcache就證明已經開啟成功了
