色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 如何降低Linux 內(nèi)存開銷

          如何降低Linux 內(nèi)存開銷

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

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

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

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

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

          內(nèi)存的作用

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

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

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

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

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

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

          為了了解基本水平的內(nèi)存使用情況,引導該系統(tǒng),登錄到桌面系統(tǒng),并啟動一個終端(在本文后面的內(nèi)容中,我將這種設置稱為 基本使用水平(base level));然后使用 free 命令來檢查系統(tǒng)中的空閑內(nè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




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

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

          然后,為了了解系統(tǒng)的日常使用情況,啟動一個 Web 瀏覽器(Firefox 2.0),然后用其打開 developerWorks,將即時消息客戶機(Gaim)連接到 MSN,并使用文件管理器來瀏覽文件夾,又在 OpenOffice 中打開一個相當大的 Microsoft Word 格式的文檔。(在本文剩余的部分中,將這種設置稱為 輕量級使用水平(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




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

          為了了解系統(tǒng)在只有 128MB 時的執(zhí)行情況,我重新引導了系統(tǒng),并在內(nèi)核行后面附加了 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




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

          啟動同一組應用程序產(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ù)字中可以預測出,現(xiàn)在該機器在正常使用時的響應能力非常低,對于這些簡單任務來說基本上還可以使用,但是會非常頻繁地訪問磁盤,我肯定不喜歡使用它作為自己的主要機器??梢钥吹綉贸绦蛐枰膬?nèi)存總量大約是 170MB,但內(nèi)存中只裝入了 72MB,因此 98MB 被轉移到交換空間。這有助于解釋系統(tǒng)響應能力降低的原因!

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

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


          清單 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 中,再次啟動那套測試應用程序(Web 瀏覽器、IM 客戶機和文字處理器)??梢钥吹綄τ谙嗤膽贸绦蚪M合,所需的內(nèi)存比 Ubuntu 大約減少了 20MB(其中 126MB 位于物理內(nèi)存,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 時的基本使用水平。這次這個內(nèi)存有限的系統(tǒng)表現(xiàn)良好,沒有使用交換空間。


          清單 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 中,再次啟動測試應用程序。雖然與 Ubuntu 相比,這個系統(tǒng)的表現(xiàn)更好,但是它依然使用了大量的交換空間,這個機器依然有些緩慢(只稍微比 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




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

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

          由于我的 256MB 系統(tǒng)上還有一點可用空間,所以通常喜歡使用 KDE,因此我嘗試了 Ubuntu 的另一個派生版本 Kubuntu,它是基于 KDE 的,在內(nèi)存使用方面大致介于 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:選擇適當?shù)膽贸绦?

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

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

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

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

          Web 瀏覽器

          對于表 1 中的各個瀏覽器,均啟動了這個程序,并打開了 developerWorks 主頁,然后等待它們?nèi)匡@示出來。結果如表 1 所示。


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



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

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

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

          文字處理器

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


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



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

          即時消息客戶機

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


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



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

          分析、選擇并不斷重復

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

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

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

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

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

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

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

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

          我的 Kubuntu 系統(tǒng)看起來并沒有啟動太多不必要的服務,但是快速查看一下進程列表,就會發(fā)現(xiàn)一些明顯能夠刪除的內(nèi)容:

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

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

          步驟 4:期望要適當

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

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

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

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

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

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

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

          結束語

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

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


          關鍵詞: Ubuntu

          評論


          相關推薦

          技術專區(qū)

          關閉