作/譯者:nicaliu at gmail dot com

(本文參考 apache 網站文件與 man page 整理而成,僅作筆記用途)



有時 Apache 2.x 需視傳送檔的內容,瞭解是否要在伺服器端作些處理時,會對檔案作記憶體映射 (memory map) 的動作 - 在底層作業系統支援 mmap 的情況下。此時,系統管理者可以利用 EnableMMAP 控制傳送檔案時是否使用 memory-mapping。預設值為 on,如伺服器檔案系統使用 NFS 掛載,請切為 off。







設定為 on 或 off 對效能的影響各有不同,在下列情況下,設定為 on 會有害效能,甚至影響 httpd 的穩定度:

.就部份作業系統而言,mmap 無法隨著 CPU 數量的增加而擴增或讀取,以多處理器的 Solaris 伺服器為例,Apache 2.x 在 mmap 停用的狀態下,傳送由伺服器解譯處理後的檔案時,會比較快。



.mamory-map 檔放在 NFS 掛載的檔案系統,且在其它 NFS client 主機上處理檔案的刪除或減縮時,程序會在下一次存取映射檔內容時,遇上匯流排錯誤或 segmentation fault 的狀況。





上述任一種情況,系統管理者都應該使用 EnableMMAP off 停用在傳遞檔案時,使用記憶體映射的動作。



此設定可用於不單可用於 httpd.conf (server config、 virtual host 與 directory) 在 .htaccess 裡亦適用。



詳見:

http://httpd.apache.org/docs/2.2/mod/core.html#enablemmap
arrow
arrow
    全站熱搜

    nicaliu 發表在 痞客邦 留言(0) 人氣()