1. 程式人生 > >虛擬機器記憶體使用情況詳解

虛擬機器記憶體使用情況詳解

[[email protected] ~]# free -m
                   total          used           free     shared      buffers     cached
Mem:         15951      15778        172        257          278            6884
-/+ buffers/cache:       8615         7335
Swap:         5983         25       5958
解釋:
第一部分Mem行:
total:記憶體總數 15951M
used:已經使用的記憶體數 15778m
free:空閒的記憶體數 172 m
shared:多個程序的共享的記憶體數 257m
buffers Buffer:快取記憶體數 278 m
cached Page:快取記憶體數 6884m
關係:total = used+ free
第二部分(-/+ buffers/cache):
(-buffers/cache) used記憶體數:8615 (指的第一部分Mem行中的used – buffers – cached)
(+buffers/cache) free記憶體數: 7335 (指的第一部分Mem行中的free + buffers + cached)
-buffers/cache反映的是被程式實實在在吃掉的記憶體。
+buffers/cache反映的是可以挪用的記憶體總數。
第三部分是指交換分割槽:
把磁碟空間當做記憶體用,也就是windows為什麼常常提示虛擬空間不足的原因.,在記憶體還有大部分的時候,拿出一部分硬碟空間來充當記憶體.硬碟怎麼會快過記憶體.linux只要不用swap的交換空間,就不用擔心自己的記憶體太少.如果常常swap用很多,可能你就要考慮加實體記憶體了。


對作業系統來講是Mem的引數-/+ buffers/cached 都是屬於被使用,所以它認為free只有172M.
對應用程式來講是(-/+ buffers/cach).buffers/cached 是等同可用的,因為buffer/cached是為了提高程式執行的效能,當程式使用記憶體時,buffer/cached會很快地被使用.


所以,以應用來看看,以(-/+ buffers/cache)的free和used為主.所以我們看這個就好了.Linux為了提高磁碟和記憶體存取效率, Linux做了很多精心的設計, 除了對dentry進行快取(用於VFS,加速檔案路徑名到inode的轉換), 還採取了兩種主要Cache方式:Buffer Cache和Page Cache.前者針對磁碟塊的讀寫,後者針對檔案inode的讀寫.這些Cache能有效縮短了I/O系統呼叫(比如read,write,getdents)的時間.

手動釋放記憶體方法:

echo 1 > /proc/sys/vm/drop_caches

註解:這樣可以釋放在buffers 和cached記憶體使用量,增加free記憶體

相關推薦

CentOS 7虛擬機器安裝Oracle11g

一、安裝Oracle前準備 1.建立執行oracle資料庫的系統使用者和使用者組 [[email protected]~]$ su root  #切換到root Password: [[email protected]]# groupadd oins

VMware Workstation 12 Pro 虛擬機器安裝步驟

VMware Workstation Pro:是一款功能強大的桌面虛擬計算機軟體,提供使用者可在單一的桌面上同時執行不同的作業系統,和進行開發、測試 、部署新的應用程式的最佳解決方案。 1,首先我們需要下載VMware Workstation的安裝包 2,接下

【深入Java虛擬機器】之Java虛擬機器工作原理

轉自:https://blog.csdn.net/bingduanlbd/article/details/8363734 一、類載入器 首先來看一下java程式的執行過程。               &nbs

Redhat/CentOS6.2 x86系統KVM虛擬機器安裝過程

什麼是 KVM ? KVM 是指基於 Linux 核心的虛擬機器(Kernel-based Virtual Machine)。 2006 年 10 月,由以色列的Qumranet 組織開發的一種新的“虛擬機器”實現方案。 2007 年 2 月釋出的 Linux 2.6.20

虛擬機器記憶體使用情況

[[email protected] ~]# free -m                    total          used           free     shared      buffers     cached Mem:        

Java虛擬機器記憶體模型

      我們都知道,當虛擬機器執行Java程式碼的時候,首先要把位元組碼檔案載入到記憶體,那麼這些類的資訊都存放在記憶體中的哪個區域呢?當我們建立一個物件例項的時候,虛擬機器要為物件分配記憶體,Java虛擬機器又是如何配分記憶體的呢?這些都涉及到Java虛擬機器的記

java虛擬機器記憶體區域的劃分以及作用

        為什麼有時候學著學著會突然之間覺得一切度是那麼無趣,男的每個月也有那麼幾天難道?哈哈,不然是什麼,我還是要堅持,可以做少一點,但是不能什麼度不做。總會過去的,加油                                              

【深入Java虛擬機器】之記憶體區域(Eden Space、Survivor Space、Old Gen、Code Cache和Perm Gen)

1.記憶體區域劃分 限定商用虛擬機器基本都採用分代收集演算法進行垃圾回收。根據物件的生命週期的不同將記憶體劃分為幾塊,然後根據各塊的特點採用最適當的收集演算法。大批物件死去、少量物件存活的,使用複製演算法,複製成本低;物件存活率高、沒有額外空間進行分配擔保的,採用標記-清除演算法

jvm虛擬機器記憶體

基礎資料型別:boolean、char、byte、double、float、int、long、short 引用型別:類、介面、陣列 早都應該寫了!!! 我們平時口頭上說的就是 堆、棧、方法區,下面先解釋一下這三個: 1、棧: 這個棧就是我們平時說的棧,全名是:虛擬機

Java虛擬機器(JVM)中的記憶體設定

在一些規模稍大的應用中,Java虛擬機器(JVM)的記憶體設定尤為重要,想在專案中取得好的效率,GC(垃圾回收)的設定是第一步。 PermGen space:全稱是Permanent Generation space.就是說是永久儲存的區域,用於存放Class和Meta資

vs2012編譯器c++儲存記憶體對齊情況

        為了方便資料的讀取,編譯器在資料儲存的時候會做一些資料優化,用空間來獲取時間,所以資料佔用的記憶體一般比較大,尤其是把sizeof用於結構體的時候,一般會得到不一樣的情況,這就是位元組對齊的情況。        對齊大小的設定:        預設情況下,筆

如何檢視應用執行時虛擬機器記憶體使用情況

三種方法檢視記憶體洩露: 1.程式的Log資訊:程式在進行垃圾回收的時候,會列印一條Log資訊(logcat視窗),例如:D/dalvikvm( 9050): GC_CONCURRENT freed 2049K, 65% free 3571K/9991K, external

對這個java虛擬機器記憶體的,年輕代,年老代,永久代i,搞不太清楚。年輕代、年老代存放在堆還是棧。新版虛擬機器沒有永久代是個啥情況

1.什麼是jvm?(1)jvm是一種用於計算裝置的規範,它是一個虛構出來的機器,是通過在實際的計算機上模擬模擬各種功能實現的。(2)jvm包含一套位元組碼指令集,一組暫存器,一個棧,一個垃圾回收堆和一個儲存方法域。(3)JVM遮蔽了與具體作業系統平臺相關的資訊,使Java

CentOS 7系統KVM虛擬機安裝過程

選項 安裝 svm roc 支持 linu 系統 kvm flags 一、如何安裝KVM 這裏我是在Windows系統中使用VMware Workstaion安裝了一臺Linux的虛擬機來進行KVM的安裝操作的。首先,我們需要了解我們安裝的Linux系統的CPU是否支持KV

《深入理解Java虛擬機器》個人讀書總結——JAVA虛擬機器記憶體

《深入理解Java虛擬機器》個人讀書總結——JAVA虛擬機器記憶體 最近在讀《深入理解Java虛擬機器》,網上對Java虛擬機器的總結有很多,自己覺得自己也應該記錄一點個人的讀書總結,以便日後複習方便。 隨著開發工作的逐漸深入,對Java的理解不能止步於crud,Java不像C語言

java虛擬機器(第二版) 第二章總結 (三)-手工復現java虛擬機器記憶體溢位(OutOfMemoryError異常)

  文章概述 的java虛擬機器記憶體溢位的簡要概述,復現堆記憶體,棧記憶體,方法區的執行時常量池記憶體等區域的溢位情況,以及上述區域發生記憶體溢位的判斷方式和解決思路。   1,概述:      IDE為eclipse,需要在執

Java程式碼執行記憶體溢位及解決方案

記憶體溢位與資料庫鎖表的問題,可以說是開發人員的噩夢,一般的程式異常,總是可以知道在什麼時候或是在什麼操作步驟上出現了異常,而且根據堆疊資訊也很容易定位到程式中是某處出現了問題。記憶體溢位與鎖表則不然,一般現象是操作一般時間後系統越來越慢,直到宕機,但並不能明確是在什麼操作上出現的,發生的時間

程式設計師面試寶典隨筆記(一)--記憶體管理

  記憶體管理是C++最令人切齒痛恨的問題,也是C++最有爭議的問題,C++高手從中獲得了更好的效能,更大的自由,C++菜鳥的收穫則是一遍一遍的檢查程式碼和對C++的痛恨,但記憶體管理在C++中無處不在,記憶體洩漏幾乎在每個C++程式中都會發生,因此要想成為C++高手,記

jvm學習筆記(1)——java虛擬機器記憶體區域

一、java記憶體區域:      1、程式計數器(執行緒私有):     記憶體中較小的記憶體空間,可以當做當前執行緒所執行位元組碼的行號指示器。如分支、迴圈、跳轉、異常處理、執行緒恢復都需要依賴這個計數器完成。 2、java虛擬機

Java虛擬機器 記憶體管理與垃圾回收

java和C++之間有一堵由記憶體自動分配與垃圾回收所圍成的高牆,外面的人想進來,裡面的人想出去 主要內容 記憶體分佈 垃圾回收機制 垃圾收集器 Java記憶體分佈 當java虛擬機器執行程式時,會把由虛擬機器管理的記憶體劃分為不同的區域,他們的作用不同,建立和銷燬時間也不同,有的是虛擬