系統架構常識,各種技術原理小結

2021-06-05 15:36:51 字數 1433 閱讀 1970

zend 

optimize

r(以下簡稱zo)用優化**的方法來提高php應用程式的執行速度。實現的原理是對那些在被最終執行之前由執行編譯器(run-time 

compiler)產生的**進行優化。

eaccelerator 通過把經過編譯後的 php **快取到共享記憶體中,並在使用者訪問的時候直接呼叫從而起到高效的加速作用。它的效率非常高,從建立共享記憶體到查詢編譯後的**都在非常短的時間內完成,對於不能快取到共享記憶體中的檔案和**,eaccelerator 還可以把他們快取到系統磁碟上。

eaccelerator 同樣還支援 php **的編譯和解釋執行,你可以通過 encoder.php 指令碼來對php**進行編譯達到保護**的目的,經過編譯後的**必須執行在安裝了 eaccelerator 的環境下。eaccelerator 編譯後的**不能被反編譯,它不象其他一些編譯工具那樣可以進行反編譯,這將使得**更加安全和高效。

深入分析eaccelerator的opcode快取功能

fastcgi的工作原理是:

1、web server 啟動時載入fastcgi程序管理器(iis isapi或apache module);

2、fastcgi程序管理器自身初始化,啟動多個cgi直譯器程序 (在任務管理器中可見多個php-cgi.exe)並等待來自web server的連線。

3、當客戶端請求到達web server時,fastcgi程序管理器選擇並連線到乙個cgi直譯器。web server將cgi環境變數和標準輸入傳送到fastcgi子程序php-cgi.exe。

4、fastcgi子程序完成處理後將標準輸出和錯誤資訊從同一連線返回web server。當fastcgi子程序關閉連線時,請求便告處理完成。fastcgi子程序接著等待並處理來自fastcgi程序管理器(執行在 webserver中)的下乙個連線。 在正常的cgi模式中,php-cgi.exe在此便退出了。

在上述情況中,你可以想象 cgi通常有多慢。每乙個web請求php都必須重新解析php.ini、重新載入全部dll擴充套件並重初始化全部資料結構。使用fastcgi,所有這些都只在程序啟動時發生一次。乙個額外的好處是,持續資料庫連線(persistent database connection)可以工作。

fastcgi的不足

因為是多程序,所以比cgi多執行緒消耗更多的伺服器記憶體,php-cgi直譯器每程序消耗7至25兆記憶體,將這個數字乘以50或100就是很大的記憶體數。

nginx 0.8.46+php 5.2.14(fastcgi)伺服器在3萬併發連線下,開啟的10個nginx程序消耗150m記憶體(15m*10=150m),開啟的64個php-cgi程序消耗1280m記憶體(20m*64=1280m),加上系統自身消耗的記憶體,總共消耗不到2gb記憶體。如果伺服器記憶體較小,完全可以只開啟25個php-cgi程序,這樣php-cgi消耗的總記憶體數才500m。

參考:fastcgi 優化

CDN技術常識入門 談CDN的網路架構

cdn網路架構主要由兩大部分,分為中心和邊緣兩部分,中心指cdn網管中心和dns重定向解析中心,負責全域性負載均衡,裝置系統安裝在管理中心機房,邊緣主要指異地節點,cdn分發的載體,主要由cache和負載均衡器等組成。當使用者訪問加入cdn服務的 時,網域名稱解析請求將最終交給全域性負載均衡dns進...

zabbix監控架構原理 linux技術

一 zabbix介紹 zabbix是一款企業級的監控軟體,可以監控的底層硬體包括主機,cpu,記憶體,交換機等資訊,同時也可以基於軟體層面做監控,包括程序,埠,檔案等狀態變化。二 zabbix監控架構及流程圖1.架構圖zabbix常見的監控方式agent,snmp,ipmazabbix採用serve...

各種系統架構的簡單介紹

一.單體架構 初創小公司,前期可能只有2 3個開發人員。為了節省成本,並希望專案快速開發,快速發布上線,快速驗證市場,這個時候就可以考慮採用單體架構進行開發。所謂單體架構,就是系統服務及資料庫等都放在同一臺伺服器上。單體架構的優點是 小團隊成型即可完成開發 測試 上線,而且迭代周期短,速度快,打包方...