日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀] 1.我想要讓Apache為大量的連接提供服務(wù)。為了減小創(chuàng)建進(jìn)程所需要的時(shí)間,我把Apache子進(jìn)程數(shù)量配置為固定的1000。系統(tǒng)的性能很差,有時(shí)甚至拒絕連接。你有什么建議嗎?解答

 1.我想要讓Apache為大量的連接提供服務(wù)。為了減小創(chuàng)建進(jìn)程所需要的時(shí)間,我把Apache子進(jìn)程數(shù)量配置為固定的1000。系統(tǒng)的性能很差,有時(shí)甚至拒絕連接。你有什么建議嗎?

解答:看來(lái)你很可能遇到了一個(gè)通常稱為“thundering herd”(異乎尋常地聚集)的問(wèn)題。Apache和Linux的文檔都詳細(xì)地說(shuō)明了這個(gè)問(wèn)題,你可以用幾種方法來(lái)解決它。

在Linux中,這種情形通常從進(jìn)程“wake”(喚醒)發(fā)展而來(lái)。當(dāng)一個(gè)新到達(dá)的連接要求Apache/Linux提供服務(wù)時(shí),系統(tǒng)向所有正在休眠的進(jìn)程發(fā)出通知。這時(shí),所有這些進(jìn)程會(huì)試圖獲得對(duì)新連接的控制權(quán)。但是,它們之中只有一個(gè)能夠獲得成功,所有其他進(jìn)程都將失敗并轉(zhuǎn)入休眠狀態(tài)。這被稱為“wake all”(全部喚醒)。Linux 2.2和更早的內(nèi)核都按照這種方式進(jìn)行處理。

當(dāng)正在休眠的Apache進(jìn)程比較少時(shí),它不會(huì)成為問(wèn)題。通常,Apache會(huì)利用httpd.conf中的MinSpareServers和MaxSpareServers配置變量調(diào)整休眠進(jìn)程的數(shù)量。然而,如果MaxSpareServer值高得異乎尋常,那么它可能導(dǎo)致性能問(wèn)題。我通常把MaxSpareServer值設(shè)置為MaxClients值的百分之五到十之間。

如果你的MaxSpareServers值高得異乎尋常,只要減小這個(gè)值就可以立即提高性能。

一些內(nèi)核不會(huì)遇到這個(gè)問(wèn)題,因?yàn)樗鼈兙哂幸环N利用“wake one”(喚醒一個(gè))的能力,“wake one”允許為每個(gè)連接請(qǐng)求喚醒一個(gè)進(jìn)程。BSD具有這個(gè)能力,Linux 2.4內(nèi)核也一樣。

為了利用“wake one”能力,編譯Apache的時(shí)候必須指定一個(gè)特殊的選項(xiàng)。如果為2.4內(nèi)核配置Apache,在編譯之前請(qǐng)按照下面的示例執(zhí)行命令,它將改善具有“wake one”能力的內(nèi)核的性能:

# CFLAGS='-DSINGLE_LISTEN_UNSERIALIZED_ACCEPT' ./configure

為給數(shù)量巨大的網(wǎng)絡(luò)連接提供服務(wù),Apache提供了許多調(diào)整參數(shù)。Apache有一個(gè)固定的最大允許連接數(shù)量限制,如果要把它設(shè)置成大于256,你必須重新編譯Apache。

另外,為了適應(yīng)大規(guī)模服務(wù)的要求,Linux也需要進(jìn)行一些文件系統(tǒng)方面的調(diào)整。你還要檢查一下Linux通過(guò)編譯方式固定的進(jìn)程、系統(tǒng)級(jí)、用戶級(jí)限制。

簡(jiǎn)而言之,當(dāng)你為了巨大的Apache進(jìn)程/連接數(shù)量而進(jìn)行調(diào)整時(shí),有大量的因素必須考慮。“thundering herd”也許是被忽視最多的問(wèn)題,但其它需要考慮的因素還有很多。

欲知更多為了提高連接數(shù)量而調(diào)整Apache的信息,請(qǐng)?jiān)L問(wèn)http://linuxperf.nl.linux.org/webserving。

2.我得到了一個(gè)服務(wù)器上的帳號(hào)。由于管理員推薦使用ssh,這個(gè)帳號(hào)被禁止使用telnet和ftp。什么是ssh?如何使用?他們?yōu)槭裁匆胻elnet?

解答:ssh是“secure shell”的簡(jiǎn)稱,它完全可以替代telnet。ssh也有一個(gè)文件復(fù)制命令,即scp(安全拷貝),利用這個(gè)命令可以在不同的機(jī)器之間移動(dòng)文件。

由于telnet和ftp的設(shè)計(jì)不是很安全,許多管理員禁用了telnet和ftp。用telnet和ftp協(xié)議登錄服務(wù)器時(shí),密碼以明文的形式發(fā)送給服務(wù)器,懷有惡意的人可能監(jiān)聽(tīng)網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)包,進(jìn)而得到用戶的登錄信息。雖然發(fā)生這種事情的可能性不大,但如果使用象ssh之類的協(xié)議,我們可以完全防止這類事情發(fā)生。

在使用方法上,ssh和telnet很相似。然而,ssh不僅加密登錄名字和密碼,而且加密整個(gè)傳輸過(guò)程。因此,ssh能夠防止任何在你和服務(wù)器之間的第三者看到傳輸內(nèi)容。

有一個(gè)廣受歡迎的免費(fèi)ssh實(shí)現(xiàn),它屬于OpenBSD系統(tǒng),但也可以在Linux上運(yùn)行。OpenSSh可以從http://ftp.openbsd.org/pub/OpenBSD/OpenSSH下載。如果你的系統(tǒng)以rpm包為基礎(chǔ),你可以在portable/rpm目錄下找到rpm包。(直到最近,OpenSSH所用的加密算法之一還有專利限制。但現(xiàn)在情況已經(jīng)有了變化。請(qǐng)參見(jiàn)http://www.rsasecurity.com/developers/total-solution)。

安裝好ssh之后,我們可以很方便地在遠(yuǎn)程服務(wù)器上利用ssh獲得一個(gè)shell。例如,假設(shè)我執(zhí)行:

# ssh dtype@trove.sourceforge.net

首先我看到系統(tǒng)提示輸入密碼,輸入后我就在遠(yuǎn)程機(jī)器上獲得了一個(gè)shell。從這里開(kāi)始,ssh的會(huì)話過(guò)程和telnet會(huì)話相似。不同之處在于,我能夠確信所有在我和服務(wù)器之間傳輸?shù)臄?shù)據(jù)都已經(jīng)經(jīng)過(guò)加密。

如果你很熟悉rsh和它的選項(xiàng),那么你很快就可以開(kāi)始使用ssh。ssh被設(shè)計(jì)成和rsh具有相同的運(yùn)作方式。一般情況下,能夠用rsh作為傳輸端口的程序都允許用ssh來(lái)替代(例如rsync)。

安全復(fù)制命令scp的用法也很簡(jiǎn)單,它的語(yǔ)法和cp的語(yǔ)法很相似。例如,要把index.php文件復(fù)制到dtype.org服務(wù)器,則我們使用如下命令:

# scp index.php dtype@dtype.org:/usr/local/apache/htdocs/

此時(shí),我們將看到密碼輸入提示(正如ssh)。接下來(lái),本地機(jī)器當(dāng)前目錄下的index.php文件被復(fù)制到dtype.org的/usr/local/apache/htdocs/,使用的登錄名字是dtype。

要了解有關(guān)OpenSSh的更多信息,請(qǐng)參見(jiàn)http://www.openssh.com,從這里你可以找到有關(guān)安全協(xié)議的詳細(xì)說(shuō)明。

3.我有一臺(tái)便攜計(jì)算機(jī)。我想要保證便攜機(jī)和臺(tái)式機(jī)上都有最新的數(shù)據(jù)文件。你有何建議?

解答:有一個(gè)優(yōu)秀的工具rsync能夠完成這個(gè)任務(wù)。rsync提供了一種保持兩組文件相同的方法。它以Andrew Tridgell(SAMBA項(xiàng)目的創(chuàng)始人)設(shè)計(jì)的算法為基礎(chǔ)。Andrew Tridgell的算法允許只傳輸對(duì)文件的改動(dòng)。

rsync一般被看成是一個(gè)標(biāo)準(zhǔn)的系統(tǒng)工具,因此你的系統(tǒng)上很可能已經(jīng)安裝了rsync。如果它還沒(méi)有安裝,那么你的Linux安裝盤上應(yīng)該有它的包文件,或者你也可以從http://rsync.samba.org下載最新的源代碼。在命令行直接輸入rsync將提示用法說(shuō)明,你可以用這種方法測(cè)試rsync是否已經(jīng)安裝。

要保持文件同步,所有機(jī)器(在本例中,這是指你的便攜計(jì)算機(jī)和臺(tái)式機(jī))都必須安裝rsync。另外,這兩臺(tái)機(jī)器應(yīng)該能夠通過(guò)網(wǎng)絡(luò)互相看到對(duì)方。

我強(qiáng)烈建議用ssh作為兩臺(tái)機(jī)器之間的通信機(jī)制。但還有其他幾種配置rsync傳輸器的方法,包括rsh和rsync daemon模式,rsync文檔對(duì)此有詳細(xì)說(shuō)明。請(qǐng)參見(jiàn)本文有關(guān)ssh的說(shuō)明了解更多信息。

rsync命令的語(yǔ)法和cp命令很相似。從本質(zhì)上看,你是在把文件從一個(gè)位置復(fù)制到另一個(gè)位置,但rsync多了幾個(gè)cp命令沒(méi)有的選項(xiàng)。和通常的文件復(fù)制相比,文件同步最大的不同之處是你必須指定一臺(tái)非本地的機(jī)器(比如你的臺(tái)式機(jī))。[!--empirenews.page--]

你應(yīng)該仔細(xì)考慮哪些文件要在機(jī)器之間保持同步。最好把這些文件放到便攜計(jì)算機(jī)的某個(gè)專用目錄,避免同步那些不需要同步的文件。例如,你的主目錄下可能有數(shù)百兆瀏覽器緩沖數(shù)據(jù)。通常情況下,你不會(huì)想要傳輸這些數(shù)據(jù)。

我在自己的臺(tái)式機(jī)器上創(chuàng)建了一個(gè)/home/drew/data目錄,用這個(gè)目錄來(lái)保存所有數(shù)據(jù)文件;為了簡(jiǎn)便起見(jiàn),我在便攜機(jī)上也創(chuàng)建了同樣的目錄。

為了用rsync把文件從臺(tái)式機(jī)同步到便攜機(jī),我在便攜機(jī)上輸入下面的命令:

# rsync -vazu -e ssh --delete drew@desktopname:/home/drew/data/ /home/drew/data/

這個(gè)命令告訴rsync利用ssh把臺(tái)式機(jī)上的/home/drew/data目錄復(fù)制到便攜機(jī)的同一目錄。為了讓這個(gè)命令能夠順利執(zhí)行,我必須能夠在不依賴rsync的情況下用ssh進(jìn)入drew@desktopname。如果你不能,請(qǐng)檢查并確保ssh已經(jīng)正確安裝且可以運(yùn)行。

下面是對(duì)上述命令的分析:-v選項(xiàng)告訴rsync輸出詳細(xì)提示信息;-a選項(xiàng)要求rsync以“archive”模式操作,此時(shí)rsync將復(fù)制目錄、符號(hào)連接等;-z選項(xiàng)用于傳輸時(shí)壓縮數(shù)據(jù);-u選項(xiàng)表示“只進(jìn)行更新”,防止rsync覆蓋便攜機(jī)上比臺(tái)式機(jī)新的文件。要讓這個(gè)選項(xiàng)能夠正確發(fā)揮作用,兩臺(tái)機(jī)器的系統(tǒng)時(shí)鐘必須同步。

我用-e ssh選項(xiàng)強(qiáng)制rsync用ssh作為傳輸機(jī)制。默認(rèn)情況下,rsync將使用rsh。--delete選項(xiàng)有點(diǎn)危險(xiǎn),它告訴rsync刪除便攜機(jī)上所有在臺(tái)式機(jī)上不存在的文件。剛開(kāi)始使用rsync命令時(shí),我建議你不要加上這個(gè)選項(xiàng),直到你熟悉了rsync命令的語(yǔ)法以及該選項(xiàng)的后果。

要把文件從便攜機(jī)同步到臺(tái)式機(jī)時(shí),我在臺(tái)式機(jī)上執(zhí)行一個(gè)相似的命令:

# rsync -vazu -e ssh /home/drew/data/ drew@desktop

name:/home/drew/data/

注意這次我省略了--delete選項(xiàng),這是因?yàn)閷?duì)于臺(tái)式機(jī),我寧愿不使用自動(dòng)刪除功能。你可能想要加上這個(gè)選項(xiàng),但應(yīng)該小心。

rsync命令還有其他許多選項(xiàng),你可以通過(guò)man文檔查看這些選項(xiàng),或者訪問(wèn)http://rsync.samba.org。

4.我想要保證幾臺(tái)機(jī)器的系統(tǒng)時(shí)鐘同步,有什么簡(jiǎn)便方法嗎?

解答:ntpdate程序正是為這個(gè)目的設(shè)計(jì),而且它很簡(jiǎn)單易用。它使用一種協(xié)議查詢一個(gè)或多個(gè)時(shí)間服務(wù)器,然后為你的機(jī)器設(shè)置正確的系統(tǒng)時(shí)間。

首先你應(yīng)該確定使用哪一個(gè)時(shí)間服務(wù)器。雖然你可以設(shè)置自己的某一臺(tái)機(jī)器作為時(shí)間服務(wù)器,然后用這臺(tái)機(jī)器同步其他機(jī)器的時(shí)鐘,但我不推薦這么做。這種做法要求你自己完成額外的管理工作,而且你必須保證時(shí)間服務(wù)器的時(shí)鐘精確。

我更喜歡以那些正式的時(shí)間服務(wù)器為參考,然后同步所有自己的機(jī)器。你可以從http://tycho.usno.navy.mil/ntp.html找到這些時(shí)間服務(wù)器的一個(gè)清單。

ntpdate命令的語(yǔ)法很簡(jiǎn)單,但必須用root身份運(yùn)行它。你可以在命令行中指定一個(gè)或者多個(gè)時(shí)間服務(wù)器,下面我要使用的是USNO清單中的前面三個(gè)。這樣,ntpdate將能夠選擇一個(gè)最好的時(shí)間服務(wù)器進(jìn)行同步。

# ntpdate ntp2.usno.navy.mil tock.usno.navy.mil tick.usno.navy.mil

 

14 Nov 17:19:04 ntpda

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

CPU親和度通過(guò)限制進(jìn)程或線程可以運(yùn)行的CPU核心集合,使得它們只能在指定的CPU核心上執(zhí)行。這可以減少CPU緩存的失效次數(shù),提高緩存命中率,從而提升系統(tǒng)性能。

關(guān)鍵字: Linux 嵌入式

在Linux系統(tǒng)性能優(yōu)化中,內(nèi)存管理與網(wǎng)絡(luò)連接處理是兩大核心領(lǐng)域。vm.swappiness與net.core.somaxconn作為關(guān)鍵內(nèi)核參數(shù),直接影響系統(tǒng)在高負(fù)載場(chǎng)景下的穩(wěn)定性與響應(yīng)速度。本文通過(guò)實(shí)戰(zhàn)案例解析這兩個(gè)...

關(guān)鍵字: Linux 內(nèi)存管理

對(duì)于LLM,我使用b谷歌Gemini的免費(fèi)層,所以唯一的成本是n8n托管。在使用了n8n Cloud的免費(fèi)積分后,我決定將其托管在Railway上(5美元/月)。然而,由于n8n是開(kāi)源的,您可以在自己的服務(wù)器上托管它,而...

關(guān)鍵字: 人工智能 n8n Linux

在Linux系統(tǒng)管理中,權(quán)限控制是安全運(yùn)維的核心。本文通過(guò)解析/etc/sudoers文件配置與組策略的深度應(yīng)用,結(jié)合某金融企業(yè)生產(chǎn)環(huán)境案例(成功攔截98.7%的非法提權(quán)嘗試),揭示精細(xì)化權(quán)限管理的關(guān)鍵技術(shù)點(diǎn),包括命令別...

關(guān)鍵字: Linux 用戶權(quán)限 sudoers文件

Linux內(nèi)核中的信號(hào)量(Semaphore)是一種用于資源管理的同步原語(yǔ),它允許多個(gè)進(jìn)程或線程對(duì)共享資源進(jìn)行訪問(wèn)控制。信號(hào)量的主要作用是限制對(duì)共享資源的并發(fā)訪問(wèn)數(shù)量,從而防止系統(tǒng)過(guò)載和數(shù)據(jù)不一致的問(wèn)題。

關(guān)鍵字: Linux 嵌入式

在云計(jì)算與容器化技術(shù)蓬勃發(fā)展的今天,Linux網(wǎng)絡(luò)命名空間(Network Namespace)已成為構(gòu)建輕量級(jí)虛擬網(wǎng)絡(luò)的核心組件。某頭部互聯(lián)網(wǎng)企業(yè)通過(guò)命名空間技術(shù)將測(cè)試環(huán)境資源消耗降低75%,故障隔離效率提升90%。本...

關(guān)鍵字: Linux 云計(jì)算

在Linux內(nèi)核4.18+和主流發(fā)行版(RHEL 8/Ubuntu 20.04+)全面轉(zhuǎn)向nftables的背景下,某電商平臺(tái)通過(guò)遷移將防火墻規(guī)則處理效率提升40%,延遲降低65%。本文基于真實(shí)生產(chǎn)環(huán)境案例,詳解從ipt...

關(guān)鍵字: nftables Linux

在Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)中,等待隊(duì)列(Wait Queue)是實(shí)現(xiàn)進(jìn)程睡眠與喚醒的核心機(jī)制,它允許進(jìn)程在資源不可用時(shí)主動(dòng)放棄CPU,進(jìn)入可中斷睡眠狀態(tài),待資源就緒后再被喚醒。本文通過(guò)C語(yǔ)言模型解析等待隊(duì)列的實(shí)現(xiàn)原理,結(jié)合...

關(guān)鍵字: 驅(qū)動(dòng)開(kāi)發(fā) C語(yǔ)言 Linux

在Unix/Linux進(jìn)程間通信中,管道(pipe)因其簡(jiǎn)單高效被廣泛使用,但默認(rèn)的半雙工特性和無(wú)同步機(jī)制容易導(dǎo)致數(shù)據(jù)競(jìng)爭(zhēng)。本文通過(guò)父子進(jìn)程雙向通信案例,深入分析互斥鎖與狀態(tài)機(jī)在管道同步中的應(yīng)用,實(shí)現(xiàn)100%可靠的數(shù)據(jù)傳...

關(guān)鍵字: 管道通信 父子進(jìn)程 Linux

RTOS :RTOS的核心優(yōu)勢(shì)在于其實(shí)時(shí)性。它采用搶占式調(diào)度策略,確保高優(yōu)先級(jí)任務(wù)能夠立即獲得CPU資源,從而在最短時(shí)間內(nèi)完成處理。RTOS的實(shí)時(shí)性是通過(guò)嚴(yán)格的時(shí)間管理和任務(wù)調(diào)度算法實(shí)現(xiàn)的,能夠滿足對(duì)時(shí)間敏感性要求極高的...

關(guān)鍵字: Linux RTOS
關(guān)閉