這正是Windows和Linux在記憶體管理上的差別,乍一看,Linux系統吃掉我們的記憶體(Linux ate my ram),但其實這也正是其記憶體管理的特色。
#下面為使用free指令查看我們實驗室檔案伺服器記憶體所得到的結果,-m選項表示使用MB為單位:
#輸出的第二行表示系統記憶體的使用:
Mem: total(總量)= 3920MB,
used(已使用)= 1938MB,
free(空閒)= 1982MB,
shared(共享記憶體)= 0MB,
buffers = 497MB,
cached = 1235MB
註:前面四項都比較好理解,buffer 和 cache找不到適當的字來翻譯,它們的差別在於:
- A buffer is something that has yet to be “written” to disk.
- A cache is something that has been “read” from the disk and stored for later use.
即buffer用來存放要輸出到磁碟的數據,而cache是從磁碟讀出存放到記憶體中待今後使用的數據。它們的引入均是為了提供IO的效能。
輸出的第三行表示在第二行的基礎上-/ buffers/cache得到的:
– buffers/cache used = Mem used – buffers – cached = 1938MB – 497MB – 1235MB = 205MB
buffers/cache free = Mem free buffers cached = 1982MB 497MB 1235MB = 3714MB
輸出的第三行表示交換分割區使用的情況:
Swap:total(總量)= 4095MB
used(使用)= 0MB
free(空閒)= 4095MB
由於系統目前記憶體還比較充足,並未使用到交換分割區。
上面輸出的結果比較難理解的可能是第三行,為什麼要向用戶展示這行數據呢?內存使用量減去系統buffer/cached的內存表示何意呢?系統空閒內存加上buffer/ cached的記憶體又表示何意?
#我們把記憶體分為三類,從使用者和作業系統的角度對其使用情況有不同的稱呼:
上表中something代表的正是free命令中”buffers/cached”的內存,由於這塊內存從操作系統的角度確實被使用,但如果用戶要使用,這塊內存是可以很快被回收被使用者程式使用,因此從使用者角度這塊記憶體應劃為空閒狀態。
再次回到free指令輸出的結果,第三行輸出的結果應該就能理解了,這行的數字表示從使用者角度看系統記憶體的使用情況。因此,如果你用top或free指令查看系統的記憶體還剩多少,其實你應該將空閒記憶體加上buffer/cached的內存,那才是實際系統空閒的記憶體。
Linux 記憶體管理做了許多精心的設計,除了對dentry進行快取(用於VFS,加速檔案路徑名稱到inode的轉換),還採取了兩種主要Cache方式:Buffer Cache和Page Cache,目的就是為了提升磁碟IO的效能。從低速的區塊裝置上讀取資料會暫時保存在記憶體中,即使資料在當時已經不再需要了,但在應用程式下一次存取該資料時,它可以從記憶體中直接讀取,從而繞開低速的塊設備,從而提高系統的整體性能。
而Linux會充分利用這些空閒的內存,設計思想是內存空閒還不如拿來多緩存一些數據,等下次程序再次訪問這些數據速度就快了,而如果程序要使用內存而係統中內存又不足時,這時不是使用交換分區,而是快速回收部分緩存,將它們留給用戶程式使用。
因此,可以看出,buffers/cached真是百益而無一害,真正的壞處可能會讓用戶產生一種錯覺——Linux耗內存!
其實不然,Linux並沒有吃掉你的內存,只要還沒使用到交換分區,你的內存所剩無幾時,你應該感到慶幸,因為Linux緩存了大量的數據,也許下一次你就從中受益。
下面透過實驗來驗證上面的結論:
我們先後讀入一個大文件,比較兩次讀入的實踐:
1.首先產生一個1G的大檔案
#2.清空快取
#3.讀入這個文件,測試消耗的時間
#4.再次讀入該文件,測試消耗的時間
#從上面看出,第一次讀這個1G的檔案大約耗時18s,而第二次再讀的時候,只耗時0.3s,足足提升60倍!
以上是被吃掉的Linux內存的詳細內容。更多資訊請關注PHP中文網其他相關文章!

互聯網運行不依賴單一操作系統,但Linux在其中扮演重要角色。 Linux廣泛應用於服務器和網絡設備,因其穩定性、安全性和可擴展性受歡迎。

Linux操作系統的核心是其命令行界面,通過命令行可以執行各種操作。 1.文件和目錄操作使用ls、cd、mkdir、rm等命令管理文件和目錄。 2.用戶和權限管理通過useradd、passwd、chmod等命令確保系統安全和資源分配。 3.進程管理使用ps、kill等命令監控和控制系統進程。 4.網絡操作包括ping、ifconfig、ssh等命令配置和管理網絡連接。 5.系統監控和維護通過top、df、du等命令了解系統運行狀態和資源使用情況。

介紹 Linux是一個強大的操作系統,由於其靈活性和效率,開發人員,系統管理員和電源用戶都喜歡。但是,經常使用長而復雜的命令可能是乏味的

Linux適用於服務器、開發環境和嵌入式系統。 1.作為服務器操作系統,Linux穩定高效,常用於部署高並發應用。 2.作為開發環境,Linux提供高效的命令行工具和包管理系統,提升開發效率。 3.在嵌入式系統中,Linux輕量且可定制,適合資源有限的環境。

簡介:通過基於Linux的道德黑客攻擊數字邊界 在我們越來越相互聯繫的世界中,網絡安全至關重要。 道德黑客入侵和滲透測試對於主動識別和減輕脆弱性至關重要

Linux基礎學習從零開始的方法包括:1.了解文件系統和命令行界面,2.掌握基本命令如ls、cd、mkdir,3.學習文件操作,如創建和編輯文件,4.探索高級用法如管道和grep命令,5.掌握調試技巧和性能優化,6.通過實踐和探索不斷提陞技能。

Linux在服務器、嵌入式系統和桌面環境中的應用廣泛。 1)在服務器領域,Linux因其穩定性和安全性成為託管網站、數據庫和應用的理想選擇。 2)在嵌入式系統中,Linux因其高度定制性和高效性而受歡迎。 3)在桌面環境中,Linux提供了多種桌面環境,滿足不同用戶需求。

Linux的缺點包括用戶體驗、軟件兼容性、硬件支持和學習曲線。 1.用戶體驗不如Windows或macOS友好,依賴命令行界面。 2.軟件兼容性不如其他系統,缺乏許多商業軟件的原生版本。 3.硬件支持不如Windows全面,可能需要手動編譯驅動程序。 4.學習曲線較陡峭,掌握命令行操作需要時間和耐心。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

Atom編輯器mac版下載
最受歡迎的的開源編輯器

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

禪工作室 13.0.1
強大的PHP整合開發環境

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中