欧美日韩精品在线,国内精品久久久久久久久,一级毛片恃级毛片直播,清纯唯美亚洲综合欧美色

Apache 性能最優(yōu)化分析(7)_Windows教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!
有兩種實(shí)現(xiàn)這個(gè)特性的辦法:一是socket的SO_LINGER選項(xiàng)。但似乎是命中注定,在多數(shù)TCP/IP協(xié)議棧中它從來(lái)不能正確地實(shí)現(xiàn)。即使是在提供了正確實(shí)現(xiàn)的平臺(tái)(即Linux 2.0.31)上,這種方法也要比第二種方法代價(jià)(指CPU時(shí)間)高得多。

  大多數(shù)情況下,Apache在一個(gè)叫l(wèi)ingering_close的函數(shù)中實(shí)現(xiàn)了它(在 http_main.c)。這個(gè)函數(shù)大致如下所示:

void lingering_close (int s)
{
char junk_buffer[2048];

/* shutdown the sending side */
shutdown (s, 1);

signal (SIGALRM, lingering_death);
alarm (30);

for (;;) {
select (s for reading, 2 second timeout);
if (error) break;
if (s is ready for reading) {
read (s, junk_buffer, sizeof (junk_buffer));
/* just toss away whatever is here */
}
}

close (s);
}

  這自然增加了連接結(jié)束時(shí)的開(kāi)銷(xiāo),但它是可靠的實(shí)現(xiàn)所必需的。隨著HTTP/1.1的日益盛行,所有連接都是持久的,這種開(kāi)銷(xiāo)將被眾多的連接請(qǐng)求抵消。如果您想冒險(xiǎn)禁止這一特性的話,可以定義宏NO_LINGCLOSE,但這顯然是不被推薦的。實(shí)際上,由于在HTTP/1.0中持久的管道式連接越來(lái)越普遍,lingering_close幾乎是必須的選擇。(管道式連接非常高效,所以您還是希望支持它的吧)

  5) 記分板文件

  Apache利用一種叫做記分板(scoreboard)的技術(shù)在父、子進(jìn)程間通訊。它的理想實(shí)現(xiàn)是在共享內(nèi)存中。有的操作系統(tǒng)允許我們直接訪問(wèn)共享內(nèi)存,或者提供它們的確切端口。在這些系統(tǒng)中的典型實(shí)現(xiàn)就是共享內(nèi)存記分板。其他的系統(tǒng)則將磁盤(pán)上的文件作為缺省實(shí)現(xiàn)。磁盤(pán)文件不僅低效而且不穩(wěn)定(又沒(méi)有什么優(yōu)勢(shì))。請(qǐng)為您的操作系統(tǒng)仔細(xì)閱讀src/main/conf.h文件,并在其中尋找USE_MMAP_SCOREBOARD或者USE_SHMGET_SCOREBOARD。定義它們之一(以及相應(yīng)的HAVE_MMAP和HAVE_SHMGET)將允許Apache使用共享內(nèi)存。如果您系統(tǒng)的內(nèi)存共享機(jī)制與眾不同,請(qǐng)編輯src/main/http_main.c并增加Apache所需的掛鉤函數(shù)(同時(shí)請(qǐng)把補(bǔ)丁寄給我們)

  注:直到1.2版,Apache的Linux版才開(kāi)始使用共享內(nèi)存。這一疏忽使得以前版本的Apache在Linux上表現(xiàn)得很不理想。

  DYNAMIC_MODULE_LIMIT

  如果您不打算支持動(dòng)態(tài)加載模塊的話(準(zhǔn)備榨出最后一滴性能的您可能希望如此),編譯服務(wù)器時(shí)請(qǐng)?jiān)O(shè)定參數(shù)-DDYNAMIC_MODULE_LIMIT=0。這將節(jié)省出為動(dòng)態(tài)加載模塊而分配的內(nèi)存。

來(lái)源:網(wǎng)絡(luò)搜集//所屬分類(lèi):Windows教程/更新時(shí)間:2013-04-15
相關(guān)Windows教程