亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠為您提供優(yōu)質(zhì)的服務(wù)! 誠征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352289
點(diǎn)擊這里給我發(fā)消息  81721488
有事點(diǎn)擊這里…  376585780
有事點(diǎn)擊這里…  872642803
有事點(diǎn)擊這里…  459248018
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  380791050
技術(shù)支持
有事點(diǎn)擊這里…  714236853
有事點(diǎn)擊這里…  719304487
有事點(diǎn)擊這里…  1208894568
有事點(diǎn)擊這里…  61352289
在線客服
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  983054746
有事點(diǎn)擊這里…  893984210
當(dāng)前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

Linux下的Apache性能參數(shù)在線調(diào)節(jié)系統(tǒng)

添加時間:2011-2-20  添加: admin 

Linux 2.6.9平臺下,針對Apache Web Server實現(xiàn)了關(guān)鍵性能參數(shù)的在線調(diào)節(jié),使得網(wǎng)絡(luò)管理員能在服務(wù)繁忙的情況下,不用重起服務(wù)就能調(diào)節(jié)服務(wù)器的性能參數(shù),減少因為重起服務(wù)引起的經(jīng)濟(jì)損失。關(guān)鍵詞Web服務(wù)器 Apache  共享內(nèi)存 在線調(diào)節(jié) Abstract:Thispaper designs and implements an online parameter-tuning system for Apache web server under Linux 2.6.9 platform. This system enables the web administrator to tuning the performance parameters of server without restarting the web service, hence reduces the cost caused by restarting the web service. Keywords:Web Server     Apache   shared memory   online tuning 1 引言     Apache是如今Internet上最流行的web服務(wù)器。Netcraft的調(diào)查表明,世界上超過60%的網(wǎng)絡(luò)Web服務(wù)器都使用Apache作為Web服務(wù)軟件。Apache是一個開放源代碼(Open Source)軟件,它健壯、高效、模塊化、響應(yīng)速度快,并且可靠穩(wěn)定。   Web管理員可以通過調(diào)節(jié)Apache配置文件中的性能參數(shù)來調(diào)節(jié)和優(yōu)化服務(wù)器的性能,然而這種方法只能實現(xiàn)靜態(tài)調(diào)節(jié),一旦服務(wù)器啟動,對配置文件中的任何參數(shù)修改只有在重新啟動服務(wù)器的情況下才能起作用。在網(wǎng)絡(luò)服務(wù)繁忙的情況下重新啟動服務(wù)器需要付出代價,因為在重起的過程中會拒絕某些服務(wù),在電子商務(wù)中拒絕服務(wù)往往會引起經(jīng)濟(jì)損失。該文闡述在Linux平臺下如何實現(xiàn)Apache參數(shù)在線調(diào)節(jié),使得管理員可以根據(jù)負(fù)載情況動態(tài)調(diào)節(jié)服務(wù)器的性能參數(shù)以提高web服務(wù)的性能,避免重新啟動服務(wù)帶來的損失。   2 Apache服務(wù)器簡介本文使用的是Apache2.0.52版本,相對于Apache 1.3版本來說,Apache 2.0更容易移植,更加可靠,它完全基于模塊。Apache 2.0的多道處理模塊(mpm)的引入使得用戶可以根據(jù)不同站點(diǎn)的特點(diǎn)和需求來選擇安裝不同的mpm來實現(xiàn)不同的運(yùn)行方式。Apache2.0.52中的mpm模塊有: 1.      預(yù)先派生(prefork) 2.      工作者(worker) 3.      WinNT 4.      beos 5.      os2 6.      netware 7.      獨(dú)立子進(jìn)程(perchild) 8.      領(lǐng)導(dǎo)者(leader) 9.      線程池(threadpool) 其中后三個是試驗?zāi)K,而前六個已經(jīng)比較成熟穩(wěn)定,3,4,5,6這四個mpm主要是針對對應(yīng)的操作系統(tǒng)設(shè)計的。prefork模塊是多進(jìn)程預(yù)先派生模塊,而工作者(worker)模塊以多進(jìn)程多線程的方式工作。本文中使用的是prefork模塊。   3 Apache配置參數(shù)簡介在apache的配置文件httpd.conf中提供了很多可供web管理員配置的性能參數(shù),其中最大子進(jìn)程數(shù)(MaxClients)和KeepAliveTimeout(保持連接超時)是對服務(wù)器性能影響最大的兩個參數(shù)。 MaxClients如果設(shè)的過小,則在連接多的情況下,客戶就得排隊等候,造成了系統(tǒng)資源沒有充分利用。而MaxClients如果設(shè)的過大,服務(wù)器就會超負(fù)載運(yùn)行,從而使得整體性能下降。 KeepAliveTimeout是主要是針對http1.1連接請求所設(shè)置的參數(shù)。它設(shè)置了在兩次連接請求之間所等待的時間,如果兩次連接請求之間間隔超過KeepAliveTimeout,服務(wù)器就斷開本次連接。 KeepAliveTimeout如果設(shè)的過小的話,保持連接的優(yōu)勢無法發(fā)揮。而KeepAliveTimeout如果設(shè)的過大,由于一個子進(jìn)程一次只能處理一個連接,造成了子進(jìn)程被綁在某個連接上,從而造成資源浪費(fèi),并且在負(fù)載重的情況下,造成很多用戶需要排隊等候,而CPU卻空閑的現(xiàn)象。   4 在線參數(shù)調(diào)節(jié)系統(tǒng)的實現(xiàn) 4.1 Apache服務(wù)器的工作方式要實現(xiàn)Apache的在線參數(shù)調(diào)節(jié),首先要了解Apache的工作方式。本文使用的mpm是prefork,因此著重介紹prefork的工作方式。 prefork模塊是多進(jìn)程模塊,啟動時,由父進(jìn)程派生出多個子進(jìn)程,父進(jìn)程是管理進(jìn)程,它按照配置文件的配置參數(shù)來控制子進(jìn)程數(shù),處理異常退出的子進(jìn)程并向日志中記錄出錯情況,維護(hù)服務(wù)器的正常運(yùn)轉(zhuǎn),它并不直接處理連接請求。服務(wù)器的連接請求是由派生出來的子進(jìn)程進(jìn)行處理的。父進(jìn)程和子進(jìn)程間通過記分板(scoreboard)進(jìn)行通信。記分板實際上是一段共享內(nèi)存,它記錄了一些全局的信息例如進(jìn)程數(shù)上限(server_limit)和線程數(shù)上限(thread_limit),并且它還維護(hù)著每個工作子進(jìn)程或線程的情況如進(jìn)程號(pid),線程號(thread_num)以及進(jìn)程或線程所處的狀態(tài)(status)等。要從外部程序在線修改apache的性能參數(shù),需要通過讀寫共享內(nèi)存記分板來實現(xiàn)。一般需要在共享內(nèi)存記分板添加各性能參數(shù)對應(yīng)的變量,通過動態(tài)修改記分板中的變量來動態(tài)調(diào)整apache的性能參數(shù)。   4.2 讀寫Apache服務(wù)器的共享內(nèi)存要從外部程序讀寫Apache的記分板,首先要了解是操作系統(tǒng)的共享內(nèi)存機(jī)制的以及Apache共享內(nèi)存中的具體內(nèi)容。Apache API函數(shù)庫中有六個宏,可以通過測試這幾個宏的值來了解操作系統(tǒng)的共享內(nèi)存機(jī)制,這幾個宏是: 1. APR_USE_SHMEM_MMAP_ZERO 2. APR_USE_SHMEM_MMAP_ANON 3. APR_USE_SHMEM_SHMGET_ANON 4. APR_USE_SHMEM_MMAP_TMP 5. APR_USE_SHMEM_MMAP_SHM 6. APR_USE_SHMEM_SHMGET 其中前三個是匿名共享內(nèi)存的創(chuàng)建方式,后三個是有名共享內(nèi)存的創(chuàng)建方式,其中1,2,4,5這四個宏是Posix共享內(nèi)存方式,而3,6是System V共享內(nèi)存方式。通過測試,Linux2.6.9系統(tǒng)上所使用的是APR_USE_SHMEM_MMAP_ANON和APR_USE_SHMEM_SHMGET。   通過設(shè)置配置文件中的ScoreboardFile選項使服務(wù)器使用有名共享內(nèi)存,即System V的共享內(nèi)存機(jī)制。這樣apache所使用的共享內(nèi)存shmid可以通過在root權(quán)限下執(zhí)行ipcs命令獲得。   至于共享內(nèi)存的內(nèi)容,Apache源代碼中有一個名為記分板的數(shù)據(jù)結(jié)構(gòu),其結(jié)構(gòu)如下: typedef struct{            global_score *global;            process_score *parent;            worker_score **servers;     }scoreboard; 而共享內(nèi)存記分板中的內(nèi)容如圖1所示,在共享內(nèi)存的起始處有一                              圖1 .Apache共享內(nèi)存記分板的內(nèi)容因此讀取記分板內(nèi)容首地址的偽代碼如下(如果采用Posix有名共享內(nèi)存機(jī)制的話): { Char* m; m=shmat(shmid,NULL,0); } 從而我們可以通過獲取的共享內(nèi)存首地址m對共享內(nèi)存進(jìn)行讀寫訪問,有目的地修改記分板的內(nèi)容。     4.3 Apache源代碼的修改我們只介紹maxclients參數(shù)的在線調(diào)節(jié)的實現(xiàn)。首先在global_score結(jié)構(gòu)中增加一個變量my_daemons_limit,該結(jié)構(gòu)存在于記分板頭文件scoreboard.h中,該文件類似地定義了與記分板內(nèi)容有關(guān)的結(jié)構(gòu)變量如process_score,worker_score等。在scoreboard.c中將my_daemons_limit的初始值設(shè)置為配置文件中配置的maxclients參數(shù)值,這主要通過ap_mpm_query函數(shù)來實現(xiàn),代碼為: Ap_mpm_query(AP_MPMQ_MAX_DAEMON_USED,& my_daemons_limit) 為了使其它程序訪問到真實的最大子進(jìn)程數(shù)即記分板中的my_daemons_limit值,在ap_mpm.h中添加一個宏AP_MPMQ_MY_MAX_DAEMON_USED,并且在prefork.c的ap_mpm_query函數(shù)的適當(dāng)位置添加以下代碼: Case AP_MPMQ_MY_MAX_DAEMON_USED: *result=ap_scoreboard_image->global->my_daemons_limit; return APR_SUCCESS; 同時將其它文件中調(diào)用Ap_mpm_query(AP_MPMQ_MAX_DAEMON_USED,…)函數(shù)的地方改為Ap_mpm_query(AP_MPMQ_MY_MAX_DAEMON_USED,…). 改動較大的是在prefork.c中,除了ap_mpm_query和set_max_clients函數(shù)中的ap_daemons_limit保持不變外,其它地方的ap_daemons_linit應(yīng)相應(yīng)改為ap_scoreboard_image->global->my_daemons_limit,比較特別的一處是在perform_idle_server_maintainance中應(yīng)改為server_limit因為該循環(huán)是查詢記分板中的各個進(jìn)程狀態(tài)并設(shè)置相應(yīng)的計數(shù)值,而外部程序設(shè)置的最大子進(jìn)程數(shù)可能比初始值大也可能比初始值小。在perform_idle_server_maintainance中還應(yīng)該修改相應(yīng)的代碼以控制

關(guān)鍵字:Linux Apache 性能 參數(shù) 調(diào)節(jié) 系統(tǒng)

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網(wǎng)站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網(wǎng)安 舉報有獎  警警  手機(jī)打開網(wǎng)站