PHP緩衝之模組緩衝(APC)
APC是Alternative PHP Cache的簡稱,是 PHP 的一個免費公開的最佳化代碼緩衝。它用來提供免費,公開並且強健的架構來緩衝和最佳化 PHP 的中間代碼。
1、PHP配置APC
開啟APC模組,需要將 extension=php_apc.dll 前面的注釋去掉即可。
APC模組的配置參數如下:
apc.enabled
類型:布爾型
apc.enabled 可以被設成 0 來禁用 APC。這主要是有用的,當 APC 被靜態編譯入 PHP 時,因為沒有其它方法來禁用它(當編譯為 DSO 的時候,可以將 php.ini 中的 extension 行注釋掉)。
apc.shm_segments
類型: 整型
對編譯緩衝分配共用記憶體塊的數量。如果APC用光了共用記憶體,而且你已經設定 apc.shm_size為系統允許的最大值的情況下,你可以試著去提高這個參數的值。
apc.shm_size
類型:整型
每個共用記憶體塊的大小是以MB為單位的。在預設情況下,一些系統(包括大多數BSD變種系統)的共用記憶體塊的大小限制的很低。
apc.optimization
類型:整型
最佳化等級。設為0則禁用最佳化,越高的值使用越強有力的最佳化。期待有適度的速度上的改進。這個還是實驗性質的。
apc.num_files_hint
類型: 整型
對在你的Web伺服器上被包含和請求的不同的源檔案的數量的提示。如果你無法確定,設定為0或者省略;這個設定主要可能用於有成千的源檔案的網站。
apc.ttl
類型:整型
當一個緩衝條目在緩衝區的位置被另一個條目需要時,我們需要考慮的是這個緩衝條目在緩衝區的位置被允許閒置秒數。將這個參數設定為0意味著你的緩衝可能 充滿不新鮮的條目,同時導致新的條目無法被緩衝。
apc.gc_ttl
類型:整型
緩衝條目在垃圾收集列表中存活的秒數。這個值提供了出錯保護在執行一個緩衝源檔案,而同時伺服器處理序死了的事件中。如果那個源檔案被修改,記憶體配置給舊版 本的緩衝條目將不會被回收,直到這個參數設定的TTL值到的時候。設定為0就是禁止這個特性。
apc.cache_by_default
類型:布爾型
預設為On,但可以被設定為Off並和以加號開頭的apc.filters配合使用,檔案僅僅在匹配過濾器時才被緩衝。
apc.filters
類型:字串
一個以逗號分割的POSIX擴充Regex的列表。如果任何模式比對源檔案名稱,這個檔案將不會被緩衝。注意用來匹配的檔案名稱是傳遞給 include/require 的檔案名稱,而不是絕對路徑。如果Regex的第一個字元是 + ,則這個運算式就意味著任何匹配運算式的檔案將會被緩衝,如果第一個字元是 - 則任何匹配都不會被緩衝。 - 是預設值,所以可以被省略。
apc.mmap_file_mask
類型:字串
如果使用–enable-mmap(預設啟用)為APC編譯了MMAP支援,這裡的值就是傳遞給mmap模組的mktemp風格的檔案掩碼(建議值為”/tmp/apc.XXXXXX”)。該掩碼用於決定記憶體映射地區是否要被file-backed或者shared memory backed。對於直接的file-backed記憶體映射,要設定成”/tmp/apc.XXXXXX”的樣子(恰好6個X)。要使用POSIX風格的shm_open/mmap就需要設定成”/apc.shm.XXXXXX”的樣子。你還可以設為”/dev/zero”來為匿名映射的記憶體使用量核心的”/dev/zero”介面。不定義此指令則表示強制使用匿名映射。
apc.slam_defense
類型:整型
在非常繁忙的伺服器上,無論你啟動服務還是修改檔案,你都會導致一種多進程都試圖在同一個時間緩衝同一個檔案的競爭。這個選項設定了進程跳過試圖去緩衝一 個未被緩衝的檔案的百分比。或者可以把這個想象成一個單獨進程跳過緩衝的機率。例如,設定apc.slam_defense為75就意味著進程有75%的 機率不去緩衝未被緩衝的檔案。所以,設定的越高,越能減少緩衝的碰撞機率。設定為0則禁用這個特性。
apc.file_update_protection
類型:整型
當你在一個運行著的伺服器上修改檔案時,你應該執行原子操作。也就是,先寫一個臨時檔案,當寫完後再重新命名(mv)這個檔案到它的最終位置。許多文本編輯 器,cp,tar和其他一些類似程式都不是這樣操作的。這就意味著有機會去訪問和(緩衝)檔案,當這個檔案還在被寫的情況下。 apc.file_update_protection的設定使得快取標籤新檔案的延遲。預設值是2,意味著如果發現檔案的修改時間距離訪問時間不到2 秒,檔案將不會被緩衝。訪問寫到一半的檔案的不幸使用者將會看到離奇的情況,但至少這種情況不是持續的。如果你確信你經常使用原子操作來更新你的檔案,你可 以關閉這個保護通過設定這個參數為0。如果你的系統充滿io操作,並導致更新程式花費超過2秒,你可能需要去增大這個值。
apc.enable-cli
類型:整型
大多是為了測試和調試。為CLI版本的PHP開啟動APC功能。一般來說,你將不會想到為每一個 CLI請求建立,移植和放棄APC的緩衝,但對於各種測試情況,這是很容易的為了CLI版本開啟APC。
案例:
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 64
apc.optimization = 0
apc.num_files_hint = 1000
apc.ttl = 0
apc.gc_ttl = 3600
apc.cache_by_default = On
apc.slam_defense = 0
apc.file_update_protection = 2
apc.enable_cli = 0
apc.stat=0
2、APC緩衝案例
http://www.bkjia.com/PHPjc/871189.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/871189.htmlTechArticlePHP緩衝之模組緩衝(APC) APC是Alternative PHP Cache的簡稱,是 PHP 的一個免費公開的最佳化代碼緩衝。它用來提供免費,公開並且強健的架構來緩...