<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 如何降低Linux 內存開(kāi)銷(xiāo)

如何降低Linux 內存開(kāi)銷(xiāo)

作者: 時(shí)間:2007-05-17 來(lái)源:網(wǎng)絡(luò ) 收藏
物理內存不足可能會(huì )嚴重影響 Linux® 的性能。在本文中,我們將學(xué)習如何精確地度量 Linux 系統所使用的內存量。還將以 系統為例學(xué)習有關(guān)降低內存需求的實(shí)踐建議。

Linux 廣受追捧的一個(gè)優(yōu)點(diǎn)是它比 Microsoft® Windows® 的效率更高,因此在不太前沿的硬件上也能很好地執行。對于依然使用 Windows 98 時(shí)代的機器的人來(lái)說(shuō),最新最卓越的軟件(特別是安全補?。┮呀?jīng)不再支持這些機器,因此這種性能優(yōu)勢使 Linux 成為頗具吸引力的升級產(chǎn)品。

然而,問(wèn)題的真相在于雖然 Linux 內核仍然可以配置成合理的大小和效率,但由于新計算機的處理能力大大加強,很多 Linux 桌面環(huán)境(例如 KDE 和 GNOME)都增加了許多特性。因此,在較老的硬件上默認安裝大多數發(fā)行版時(shí),提供的性能都不是一流的。很多現代應用程序也是如此,例如,Firefox 之類(lèi)的 Web 瀏覽器和 OpenOffice 之類(lèi)的辦公套件均功能完備,但是嘗試在只有 128MB RAM 的機器上運行這些程序,可能會(huì )成為非常痛苦的體驗!

該怎么辦?丟掉所有舊的硬件然后升級?還是安裝 1995 年左右的 Linux 發(fā)行版?(如果您決定走這條路,我記得使用 Linux-FT 是一種很好的體驗。)

不要擔心:多年以前,Linux 社區中的人就已經(jīng)認識到這個(gè)問(wèn)題,Linux 內核和發(fā)行版的一大特性(有人喜歡說(shuō) 這個(gè) 偉大特性)在于其能夠定制。本文將介紹如何對 Linux 系統進(jìn)行裁減,以便在小容量的硬件上獲得更好的性能。

內存的作用

在大多數情況下,桌面操作系統性能的一個(gè)最重要因素就是系統可用的內存量。雖然擁有快速的處理器效果不錯,但是如果沒(méi)有足夠的物理內存保證一直很好地利用處理器,系統可能會(huì )花費大量時(shí)間用于在物理內存和交換空間之間的交換數據(這種情況稱(chēng)為 磁盤(pán)抖動(dòng)),而 CPU 的大部分時(shí)間都是空閑的。因此對于老式的系統來(lái)說(shuō),額外添加內存通常是提高性能的最簡(jiǎn)單方法。然而,有很多原因決定了這種方法不太可能,例如缺少空閑插槽,對于一些系統(尤其是筆記本或基于 RAMBUS 的系統)來(lái)說(shuō),則是缺少買(mǎi)得起的 RAM,以及不希望在一臺過(guò)期的系統上花更多錢(qián)這個(gè)容易理解的心理。

如果無(wú)法或不愿意升級 RAM,接下來(lái)最好減少系統上的 RAM 需求。本文將展示為 Linux 機器打造內存天堂 5 個(gè)簡(jiǎn)單步驟。

步驟 1:選擇正確的桌面環(huán)境

惟一需要做的重要選擇就是要安裝的 Linux 發(fā)行版和桌面環(huán)境(DE)。盡管這是截然不同的選擇,但是發(fā)行版的選擇可能影響 DE 的選擇。雖然沒(méi)有任何東西能夠阻擋您在系統上安裝軟件,例如在 上安裝 Fluxbox;但是您會(huì )發(fā)現如果簡(jiǎn)單地使用發(fā)行版所附帶的默認 DE,一切就會(huì )輕松很多。

在本文方案中,目標是尋找面向桌面的簡(jiǎn)單發(fā)行版,以便于新用戶(hù)使用。我從 6.10 開(kāi)始入手,它和 GNOME 2.16 一起推出。

對于基本系統來(lái)說(shuō),我選擇了一臺配有 800MHz 處理器和 256MB RAM 的老機器。我將執行了兩次測試,一次使用全部 256MB RAM 正常引導,一次在內核行上附加了 mem=128M,這會(huì )強制內核只識別 128MB 物理內存。這樣就可以有效地試驗 256MB 和 128MB 的機器,而不必實(shí)際使用另一臺物理機器(也不必反復從機器中插拔內存)。這個(gè)內核行選項能夠足夠近似地模擬 128 MB 的機器的行為;注意,如果真的只有 128MB 內存,可能會(huì )遇到其他問(wèn)題,舉例來(lái)說(shuō),要使用 Ubuntu,必須使用一個(gè)不同于普通機器磁盤(pán)的安裝盤(pán),它是專(zhuān)門(mén)為少于 192MB RAM 的機器準備的。

為了了解基本水平的內存使用情況,引導該系統,登錄到桌面系統,并啟動(dòng)一個(gè)終端(在本文后面的內容中,我將這種設置稱(chēng)為 基本使用水平(base level));然后使用 free 命令來(lái)檢查系統中的空閑內存量,結果如清單 1 所示。


清單 1. Ubuntu 在 256MB 機器上的基本使用水平
ubuntu # free
total used free shared buffers cached
Mem: 255988 231704 24284 0 6432 139292
-/+ buffers/cache: 85980 170008
Swap: 746980 0 746980




第一行說(shuō)明 256MB RAM 中有 231MB “正在使用”。下一行告訴我們盡管有 231MB 內存正在使用,但是應用程序只使用了其中的 86MB;緩沖區和高速緩存使用了其余的內存。

要評價(jià)性能,該清單中最重要的部分是 Swap 一行;它告訴我們當前沒(méi)有使用任何交換空間,這說(shuō)明目前沒(méi)有真正遇到內存問(wèn)題。系統現在可以全部裝入物理內存,而不必借助慢速的基于磁盤(pán)的交換空間。

然后,為了了解系統的日常使用情況,啟動(dòng)一個(gè) Web 瀏覽器(Firefox 2.0),然后用其打開(kāi) developerWorks,將即時(shí)消息客戶(hù)機(Gaim)連接到 MSN,并使用文件管理器來(lái)瀏覽文件夾,又在 OpenOffice 中打開(kāi)一個(gè)相當大的 Microsoft Word 格式的文檔。(在本文剩余的部分中,將這種設置稱(chēng)為 輕量級使用水平(light usage level)。)

一旦成功加載這些之后, free 命令將如清單 2 所示。


清單 2. Ubuntu 在 256MB 機器上的輕量級使用水平
ubuntu # free
total used free shared buffers cached
Mem: 255988 252196 3792 0 21276 87500
-/+ buffers/cache: 143420 112568
Swap: 746980 18676 728304




可以看到內存部分稍有變化?,F在應用程序使用了 143MB 的物理內存,其余的內存均被緩沖區占用;另外,系統現在使用了 18MB 的交換空間。在這種輕量級的辦公任務(wù)情況下,系統的可用性通??雌饋?lái)很不錯,但是已經(jīng)沒(méi)有太多發(fā)展空間了,可能無(wú)法進(jìn)行需要資源更多的操作,例如編輯巨大的數字照片或視頻文件,因為系統很快就會(huì )在處理時(shí)發(fā)生停歇。

為了了解系統在只有 128MB 時(shí)的執行情況,我重新引導了系統,并在內核行后面附加了 mem=128M 選項,就像前面介紹的一樣。在與清單 1 同樣的基本使用水平上,使用 128MB RAM 得到的結果如清單 3 所示。


清單 3. Ubuntu 在 128MB 機器上的基本使用水平
ubuntu # free
total used free shared buffers cached
Mem: 126100 121464 4636 0 1636 37000
-/+ buffers/cache: 82828 43272
Swap: 746980 17924 729056




可以看到現在只使用了 128MB 內存,已經(jīng)開(kāi)始使用交換空間了,并且現在實(shí)際上還沒(méi)有開(kāi)始執行任何操作。

啟動(dòng)同一組應用程序產(chǎn)生的結果如清單 4 所示。


清單 4. Ubuntu 在 128MB 機器上的輕量級使用水平
ubuntu # free
total used free shared buffers cached
Mem: 126100 123608 2492 0 392 51208
-/+ buffers/cache: 72008 54092
Swap: 746980 98452 648528




從這些數字中可以預測出,現在該機器在正常使用時(shí)的響應能力非常低,對于這些簡(jiǎn)單任務(wù)來(lái)說(shuō)基本上還可以使用,但是會(huì )非常頻繁地訪(fǎng)問(wèn)磁盤(pán),我肯定不喜歡使用它作為自己的主要機器??梢钥吹綉贸绦蛐枰膬却婵偭看蠹s是 170MB,但內存中只裝入了 72MB,因此 98MB 被轉移到交換空間。這有助于解釋系統響應能力降低的原因!

下一組測試,我決定使用 Xubuntu,這是與 Ubuntu 有關(guān)項目的發(fā)行套件。這個(gè)發(fā)行版與 Ubuntu 非常類(lèi)似,但使用了 Xfce 4.4 Beta 2 DE,而不是 GNOME。與更為流行的 GNOME 和 KDE 項目不同(它們強調的是實(shí)現最佳功能),Xfce 被設計成輕量級的,因此有望更好地滿(mǎn)足過(guò)期硬件的要求。我們將使用這個(gè)發(fā)行版執行與 Ubuntu 相同的測試。

在清單 5 中可以看出基本 DE 大約少使用了 25MB 的應用程序內存,并且緩沖區和緩存所使用的內存顯著(zhù)少于 Ubuntu(這可能意味著(zhù)文件操作較少)。


清單 5. Xubuntu 在 256MB 機器上的基本使用水平
xubuntu # free
total used free shared buffers cached
Mem: 255988 170964 85024 0 6004 104700
-/+ buffers/cache: 60260 195728
Swap: 746980 0 746980




在清單 6 中,再次啟動(dòng)那套測試應用程序(Web 瀏覽器、IM 客戶(hù)機和文字處理器)??梢钥吹綄τ谙嗤膽贸绦蚪M合,所需的內存比 Ubuntu 大約減少了 20MB(其中 126MB 位于物理內存,17MB 位于交換空間,總共是 143 MB;在 Ubuntu 上是 143MB 加 18MB,總共是 161MB)。


清單 6. Xubuntu 在 256MB 機器上的輕量級使用水平
xubuntu # free
total used free shared buffers cached
Mem: 255988 252180 3808 0 1972 124008
-/+ buffers/cache: 126200 129788
Swap: 746980 16956 730024




清單 7 給出了只有 128MB RAM 時(shí)的基本使用水平。這次這個(gè)內存有限的系統表現良好,沒(méi)有使用交換空間。


清單 7. Xubuntu 在 128MB 機器上的基本使用水平
xubuntu # free
total used free shared buffers cached
Mem: 126100 123228 2872 0 4252 60484
-/+ buffers/cache: 58492 67608
Swap: 746980 0 746980




在清單 8 中,再次啟動(dòng)測試應用程序。雖然與 Ubuntu 相比,這個(gè)系統的表現更好,但是它依然使用了大量的交換空間,這個(gè)機器依然有些緩慢(只稍微比 Ubuntu 好一些)。


清單 8. Xubuntu 在 128MB 機器上的輕量級使用水平
xubuntu # free
total used free shared buffers cached
Mem: 126100 123980 2120 0 468 56276
-/+ buffers/cache: 67236 58864
Swap: 746980 64516 682464




從這些數字可以看出,Xubuntu 在整個(gè)過(guò)程中使用的內存通常更少;因此如果您的系統只有 128MB(或更少內存),這可能是較好的選擇。

Linux 發(fā)行版的一個(gè)重要特征是它們通常不需要花費任何費用,因此很容易下載多個(gè)發(fā)行版,然后逐一試用一段時(shí)間,從而確定喜歡使用的發(fā)行版,及其在硬件上的執行情況。如果硬件非常有限,可能希望考察一下 Damn Small Linux 之類(lèi)的發(fā)行版,它宣稱(chēng)可以在只有 16MB RAM 的 486DX 處理器的系統上運行。

由于我的 256MB 系統上還有一點(diǎn)可用空間,所以通常喜歡使用 KDE,因此我嘗試了 Ubuntu 的另一個(gè)派生版本 Kubuntu,它是基于 KDE 的,在內存使用方面大致介于 Xubuntu 和 Ubuntu 之間。作為參考,清單 9 展示了 Kubuntu 的基本使用水平。


清單 9. Kubuntu 在 256MB 機器上的基本使用水平
kubuntu # free
total used free shared buffers cached
Mem: 255988 244736 11252 0 7612 160008
-/+ buffers/cache: 77116 178872
Swap: 746980 0 746980





步驟 2:選擇適當的應用程序

選定了發(fā)行版之后,接下來(lái)的事情是選擇要使用的應用程序組合。不同應用程序的內存需求可能差異很大;有時(shí)需要在規模和功能之間進(jìn)行權衡,但是在另外一些情況下,即使功能相同的應用程序對內存的需求也可能存在巨大差異。

為了度量本文的內存使用情況,我們將使用 exmap 工具。該工具比 ps 或 top 更精確,因為它考慮了多個(gè)應用程序使用的共享庫。例如,如果兩個(gè)應用程序使用了相同的共享庫,各占 1MB 內存,ps 會(huì )顯示這兩個(gè)應用程序均額外使用了 1MB 內存,exmap 則能更準確地顯示每個(gè)應用程序都只使用了 500 KB 內存。這種精確性對于評價(jià) KDE 和 GNOME 之類(lèi)的桌面環(huán)境非常重要,因為在這些情況下應用程序之間會(huì )大量使用共享庫。

對于在下面幾部分討論的每個(gè)應用程序,我測量了 exmap 所生成的 resident 和 effective resident 值。resident 值表示進(jìn)程使用的物理內存總量,包括其他進(jìn)程使用的共享庫;該值通常與 ps 或 top 輸出的值相同。effective resident 值是將共享庫占用的內存平均分配給各個(gè)共享進(jìn)程得到的;從指定進(jìn)程所消耗的系統內存角度來(lái)看,該值更加精確。

還需要注意,在確定進(jìn)程的全部?jì)却骈_(kāi)銷(xiāo)時(shí),還應該考慮 mapped 和 effective mapped 的值,它是進(jìn)程中位于交換空間中的那些部分。mapped 值與 resident 值類(lèi)似,但是它針對交換空間中的頁(yè)面,而不是物理內存中的頁(yè)面。因此要查看不考慮共享庫時(shí)的數據,可以將 resident 和 mapped 值加在一起;要查看考慮對共享庫時(shí)的數據,就需要將 effective resident 和 effective mapped 值加在一起。在制作該表時(shí),并沒(méi)有 記錄這些值,這是因為對于我們的測試來(lái)說(shuō),交換空間中并沒(méi)有什么進(jìn)程,因此,對于這些列,exmap 命令輸出結果的值均為 0。

Web 瀏覽器

對于表 1 中的各個(gè)瀏覽器,均啟動(dòng)了這個(gè)程序,并打開(kāi)了 developerWorks 主頁(yè),然后等待它們全部顯示出來(lái)。結果如表 1 所示。


表 1. Web 瀏覽器的內存使用情況比較
應用程序 Effective resident 內存(KB) Resident 內存(KB)
Firefox 27708 35068
Opera 20477 27816
Konqueror 13479 29748
Dillo 2776 6888
Lynx 1101 1540



從該表可以看出,這些瀏覽器的內存使用情況存在很大差異,內存需求最高的瀏覽器(Firefox)使用的內存比需求最低的瀏覽器(Lynx)多了大約 27 倍。這并不是非常公平的比較,因為 Lynx 并不能實(shí)現同樣的功能(舉例來(lái)說(shuō),它甚至不能顯示圖形),但這說(shuō)明,可以根據需求極大地降低內存的使用情況。盡管表 1 中列出的前 3 個(gè)瀏覽器的功能與第一個(gè)瀏覽器的功能多少有些相同,但 Opera 使用的內存大約只有 Firefox 的 2/3,Konqueror 使用的內存比 Firefox 少一半。

對于要求不太高的使用需求來(lái)說(shuō),Dillo 是介于功能完善的瀏覽器和只有少量開(kāi)銷(xiāo)的 Lynx 之間的折中方案。Dillo 提供了一個(gè) GUI;但在默認狀態(tài)下其功能相當有限,沒(méi)有其他插件時(shí)甚至不支持 SSL!

還需要注意我們對共享內存的使用也進(jìn)行了比較,Konqueror 的執行情況比 Firefox 更好,它使用的內存大約少 14MB;然而,如果查看一下總體使用情況,Konqueror 也仍然高于 Firefox,但差距不大,大約只有 5MB。這是因為 Konqueror 大量地使用了 KDE 共享庫,使用 KDE 桌面時(shí),這些庫被加載到各種應用程序。然而,如果沒(méi)有使用任何其他 KDE 應用程序,Opera 將是比 KDE 更佳的選擇。稍后我們將更加詳細地討論這個(gè)問(wèn)題。

文字處理器

為了測試文字處理器,我加載了首次對表 2 中列出的文字處理器進(jìn)行測試時(shí)使用的同一個(gè) Microsoft Word 格式的文檔。


表 2. 文字處理器的內存使用情況比較
應用程序 Effective resident 內存(KB) Resident 內存(KB)
OpenOffice Writer 70114 81960
AbiWord 58029 65224
KWord(來(lái)自 KOffice) 46512 60096



從這些數字可以明顯看出,OpenOffice Writer 使用的內存比 KWord 或 AbiWord 都要多。KWord 使用的內存僅次于 OpenOffice,它在正確地顯示 Microsoft Word 格式的文檔方面做得最好。盡管 AbiWord 也可以成功地打開(kāi)該文檔,但在正確顯示文檔時(shí)會(huì )遇到一些問(wèn)題,因此如果對您來(lái)說(shuō)與 Microsoft Office 的協(xié)作非常重要,最好選擇 OpenOffice。

即時(shí)消息客戶(hù)機

為了測試即時(shí)消息,我使用表 3 給出的 IM 客戶(hù)機分別登錄到 MSN Messenger 帳號中。


表 3. IM 客戶(hù)機的內存使用情況比較
應用程序 Effective resident 內存(KB) Resident 內存(KB)
aMSN 18455 20344
Gaim 13456 21464
Kopete 10988 24176
KMess 7154 19660



此處,Kmess 最適合我,并且它是合理的選擇,因為我只對連接到 MSN 感興趣。如果需要使用其他服務(wù),那么 Kopete 似乎是最好的選擇。不過(guò)要注意,如果使用不同的 IM 協(xié)議,應用程序使用的內存可能會(huì )增加;另外,Kmess 是集成的 KDE 應用程序,如果沒(méi)有使用 KDE,Gaim 可能更適合您。

分析、選擇并不斷重復

現在您已經(jīng)了解如何分析應用程序的內存使用情況;可以對自己感興趣的所有應用程序類(lèi)型簡(jiǎn)單地重復這個(gè)過(guò)程,體驗各種可用選擇,直到找到內存需求最低又能滿(mǎn)足功能需求的選擇為止。

在上面的 Web 瀏覽器一節中,您可能會(huì )注意到:在使用應用程序時(shí),最節省內存的通常是與桌面環(huán)境緊密集成的應用程序。這是因為這些應用程序通常大量使用嵌入到 DE 中的共享庫,并且這些共享庫可能早已加載到系統中。舉例來(lái)說(shuō),Konqueror 是 KDE 的文件管理器和 Web 瀏覽器;因此,它在 KDE 系統上運行時(shí)使用的內存明顯少于 Firefox,這是因為它的大部分功能已經(jīng)通過(guò)其他應用程序加載到該系統。類(lèi)似地,如果希望使用 RSS 聚合器,Akregator 可能是很好的選擇,因為它同樣非??赡苁褂孟嗤膸?。

因此,如果您注重內存使用情況,則在自己的 系統上執行這些測試非常重要,這是因為很難通過(guò)查看他人的基準測試結果來(lái)了解哪個(gè)應用程序在您的系統上使用的內存較少。

這個(gè)事實(shí)對于選擇 DE 也有影響。舉例來(lái)說(shuō),如果真正希望使用 Konqueror,則使用 KDE 作為 DE 可能最為有效。類(lèi)似地,如果您是 GNOME 用戶(hù),在使用您感興趣的簡(jiǎn)短 KDE 應用程序之前需要三思,因為它可能會(huì )使用整個(gè)主機來(lái)加載庫,但只有自己會(huì )使用這些庫。

步驟 3:刪除不希望使用的服務(wù)和設置

選定發(fā)行版、桌面環(huán)境和應用程序組合之后,哪些工作還可以降低使用的內存呢?要回答這個(gè)問(wèn)題,需要對系統進(jìn)行深入挖掘和配置。借助 exmap,可以分析出系統上正在運行的內容,然后嘗試刪除不需要的內容,并按照自己的需要對系統進(jìn)行配置。

較好的著(zhù)手點(diǎn)是系統引導時(shí)自動(dòng)啟動(dòng)的服務(wù),但這樣做需要非常小心,才不至于刪除系統運行時(shí)需要的任何內容。需要研究具體的發(fā)布版需要哪些內容,以及服務(wù)的配置方式,因為各個(gè)發(fā)行版的這些內容可能有所不同。有些發(fā)行版比其他發(fā)行版差,因為它默認啟動(dòng)很多不需要的服務(wù),例如 Web 服務(wù)器等,這會(huì )占用大量?jì)却妗?

除了系統服務(wù)之外,您可能還希望了解 DE 的配置情況,因為它也可能啟動(dòng)不需要的服務(wù)。

我的 Kubuntu 系統看起來(lái)并沒(méi)有啟動(dòng)太多不必要的服務(wù),但是快速查看一下進(jìn)程列表,就會(huì )發(fā)現一些明顯能夠刪除的內容:

HPLIP(4.4MB):HP 打印機和掃描器所使用的服務(wù)。由于這臺機器上并沒(méi)有連接此類(lèi)設備,所以并不需要該服務(wù)。
cupsd(1.1MB):打印機后臺處理進(jìn)程。由于這臺機器并沒(méi)有連接打印機,所以并不需要該服務(wù)。
kbluetoothd(3.2MB):KDE Bluetooth 后臺處理進(jìn)程。由于這臺機器上并沒(méi)有 Bluetooth 連接,所以并不需要該服務(wù)。
klipper(1.7MB):KDE 剪切板工具。我沒(méi)有考慮使用這個(gè)工具,因此將其禁用。
KMix(4.1MB):KDE 音頻合成器。并不是所有時(shí)間都需要運行它,因為我通過(guò)外部喇叭來(lái)調節音量。
只需花 5 分鐘進(jìn)行配置,就能節省 14MB 左右的內存,與最初大約節省 77MB 相比,這是不錯的著(zhù)手點(diǎn)。

深入了解您的 DE 和其他大型應用程序的設置非常值得,因為有些設置可能會(huì )影響所使用的內存量。舉例來(lái)說(shuō),通過(guò)減少虛擬桌面的個(gè)數,也許可以節省一些內存,使用較大的位圖作為背景時(shí)尤其如此。關(guān)閉一些奇異的顯示特效也可能有所幫助。

步驟 4:期望要適當

在使用舊硬件時(shí),應該考慮到該機器的局限,并正確地進(jìn)行操作。舉例來(lái)說(shuō),如果希望編輯一組照片,請不要同時(shí)打開(kāi)所有照片。這樣只會(huì )不必要地消耗內存。如果依次打開(kāi),并且編輯之后立即將其關(guān)閉,就會(huì )簡(jiǎn)單很多。類(lèi)似地,如果您正在嘗試捕獲并編輯一些視頻,請考慮單獨捕獲每一個(gè)屏幕,而不要一次捕獲所有屏幕;如果正在創(chuàng )建包含圖形展示的大型文檔,則在編輯完文本之前不要添加圖片。

步驟 5:優(yōu)化系統

最后一個(gè)步驟是查看系統中的內存大戶(hù),并找出是否可以從某處節省一些內存。有很多節省內存的機會(huì ),但性能就會(huì )有所下降,對于大多數人來(lái)說(shuō),對性能產(chǎn)生的負面影響和所需的工作量,使得這樣做非常不值得。不過(guò),可以考慮下面一些操作:

只使用硬件特有的驅動(dòng)程序重新編譯內核。大部分主流發(fā)行版都適合于大量硬件,因此它們通常支持您沒(méi)有使用的很多硬件。這可以產(chǎn)生一定的優(yōu)勢,盡管以模塊形式存在的硬件支持在不需要時(shí)不會(huì )加載到系統中。

重新編譯特定的應用程序或庫,這樣就可以對大小進(jìn)行優(yōu)化,使其專(zhuān)門(mén)用于正在使用的特定 CPU,從而也可以節省一些內存。Gentoo 發(fā)行版在這個(gè)方面做得非常好,您可以使用自己選擇的確切編譯標記輕松地重新編譯某些或所有系統組件。遺憾的是,這個(gè)過(guò)程在老機器上執行時(shí)可能非常漫長(cháng)。

刪除應用程序或庫的某些特性,然后對其重新編譯也可以降低一些內存需求。借助 Gentoo 又是很好的主意,因為它包含 USE 標記的概念,允許在禁用應用程序的特性之后,輕松構建系統。這樣可以極大地減少應用程序的大小,應用程序發(fā)布時(shí)通常都支持大量的文件格式、編碼等,這通常需要加載一些庫來(lái)提供實(shí)際支持。如果您知道自己永遠都不會(huì )閱讀(比如說(shuō))JPEG 文件,就可以在 Gentoo 中說(shuō)明這一點(diǎn)(通過(guò) USE=-jpeg),這樣任何處理圖形的應用程序編譯后都不支持 JPEG,從而可以降低內存負載。

最近推出的 2.6 內核有一個(gè) swappiness 參數,它可以在運行時(shí)進(jìn)行調優(yōu)。這個(gè)參數決定了,將應用程序移動(dòng)到交換空間而不是移動(dòng)到正在減少的高速緩存和緩沖區中的可能性,在前面的測試中可以看到,將應用程序交換出去,而保留大塊物理內存以進(jìn)行緩存的情況很常見(jiàn)。通過(guò)降低交換出去的可能性,緩存可能減少,這樣就可以在內存中保留更多應用程序。但是,這種移動(dòng)是否真正會(huì )使機器運行得更快,取決于正在運行的應用程序。如果在應用程序之間頻繁地換入換出,那么機器的響應能力可能會(huì )提高,因為它們位于內存中的概率增加了;然而,如果有一個(gè)任務(wù)會(huì )執行大量磁盤(pán)讀寫(xiě)操作,這樣做可能速度很慢。通常,降低 swappiness 可以提高交互式應用程序的響應能力,但是會(huì )降低系統的總體吞吐量。

結束語(yǔ)

本文的思想可以使您的老機器重新煥發(fā)青春(以及其他一些安全性),并在老式硬件上更好地使用 Linux。測量結果顯示,一臺 800-MHz/256-MB 的機器可以很好地運行一個(gè)相當好用的 Linux 桌面,以滿(mǎn)足輕量級的日常辦公和家用需求,如發(fā)送 e-mail、瀏覽 Web、文字處理等工作。稍作調整并進(jìn)行實(shí)驗,即使 128MB 的機器也可以成為令人滿(mǎn)意的桌面計算機。

盡管本文重點(diǎn)講述在相當有限的硬件上實(shí)現功能良好的桌面,也可以對其他 Linux 應用采用相同的原理。不管最新的超大機器上有多少內存,很快就會(huì )發(fā)現新應用程序已占滿(mǎn)了這些內存。通過(guò)應用這些技術(shù),可以稍微提高過(guò)載服務(wù)器的性能,并深入了解應用程序的內存使用情況。


關(guān)鍵詞: Ubuntu

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>