❶ 如何調高linux單進程使用的內存上限
修改/etc/security/limits.conf可以調整進程內存上限, 具體看 man limits.conf
但是我覺得你的問題可能在於java,
一個是java版本,我估計32位版本可能只能用4GB,若是64位的版本就不會
另一個是 java 參數 -Xmx 你先看看現在的設置然後嘗試調高,看看是否有效
❷ Linux進程內存管理
對於包含MMU的處理器而言,Linux系統提供了復雜的存儲管理系統,使得進程所能訪問的內存達到4GB。在Linux系統中,進程的4GB內存空間被分為兩個部分——用戶空間與內核空間。用戶空間的地址一般分布為0~3GB(即PAGE_OFFSET,在Ox86中它等於OxC0000000),這樣,剩下的3~4GB為內核空間,用戶進程通常只能訪問用戶空間的虛擬地址,不能訪問內核空間的虛擬地址。用戶進程只有通過系統調用(代表用戶進程在內核態執行)等方式才可以訪問到內核空間。
每個進程的用戶空間都是完全獨立、互不相乾的,用戶進程各自有不同的頁表。而內核空間是由內核負責映射,它並不會跟著進程改變,是固定的。內核空間的虛擬地址到物理地址映射是被所有進程共享的,內核的虛擬空間獨立於其他程序。
Linux中1GB的內核地址空間又被劃分為物理內存映射區、虛擬內存分配區、高端頁面映射區、專用頁面映射區和系統保留映射區這幾個區域。
對於x86系統而言,一般情況下,物理內存映射區最大長度為896MB,系統的物理內存被順序映射在內核空間的這個區域中。當系統物理內存大於896MB時,超過物理內存映射區的那部分內存稱為高端內存(而未超過物理內存映射區的內存通常被稱為常規內存),內核在存取高端內存時必須將它們映射到高端頁面映射區。Linux保留內核空間最頂部FIXADDR_TOP~4GB的區域作為保留區。
當系統物理內存超過4GB時,必須使用CPU的擴展分頁(PAE)模式所提供的64位頁目錄項才能存取到4GB以上的物理內存,這需要CPU的支持。加入了PAE功能的Intel Pentium Pro及以後的CPU允許內存最大可配置到64GB,它們具備36位物理地址空間定址能力。
由此可見,對於32位的x86而言,在3~4GB之間的內核空間中,從低地址到高地址依次為:物理內存映射區→隔離帶→vmalloc虛擬內存分配器區→隔離帶→高端內存映射區→專用頁面映射區→保留區。
❸ 怎麼查看linux每個進程的內存大小限制
我不知道如何查看。但記得Linux(32位)中每個進程獨享4GB的進程空間,需要注意的是這4G指的是虛擬內存,而非物理內存。可以查閱一下Linux虛擬內存機制相關資料。
要定製的話難度大啊!內核文件里用進程描述符(thread_info)表示一個進程,它是一個結構體,裡面有個關於進程內存分配的欄位(addr_limit)。具體自己研究研究吧!
如果只是對某個進程分配空間的話就簡單多了。假如你要為當前進程設置2M的內存上限,可以通過current->addr_limit=2048實現。
❹ Linux系統有多大內存
你是指運行linux系統所需內存嗎??
128M可以基本運行並安裝
256M可以勉強開啟特效
512M流暢運行特效
當然內存越大越好,特效與顯卡也有關系
和windows相比,當然linux對內存的需求小
❺ linux 32位系統支持多大內存
32位linux不打開PAE,則最多隻能識別出4GB內存,若打開PAE,則最多可以識別出64GB內存。但是 32位系統下的進程一次最多隻能定址4GB的空間。 64位linux則沒有32位系統的限制。因此對於內存大於4GB的機器來說,最好安裝64位系統。 簡單介紹下如何讓redhat 5-32位支持4G以上內存。 步驟1: 安裝kernel-PAE.i686 內核包,讓系統內核支持PAE物理地址擴展。 rpm-ivh kernel-PAE-2.6.18-53.el5.i686.rpm 安裝的時候會報如下警告。 將安裝命令由原本的rpm-ivh ****.rpm 改為rpm -ivh ****.rpm –force --nodeps就可以了,nodeps的意思是忽視依賴關系。因為各個軟體之間會有或多或少的存在關聯,有了這兩個設置選項就忽略了這些依賴關系,強制安裝。 步驟2: 設置linux系統啟動加載入內核,讓系統啟用PAE的內核 [root@wangdm~ 12:40 #11]# /boot/grub/grub.conf #grub.conf generated by anaconda # #Note that you do not have to rerun grub after making changes to this file #NOTICE: You have a /boot partition. This means that # all kernel and initrd paths arerelative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version roroot=/dev/sda3 # initrd /initrd-version.img #boot=/dev/sda default=0 (將default=1修改為default=0就可以了) timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu #升級後的系統引導 titleRed Hat Enterprise Linux Server RedHat Enterprise Linux Server (2.6.18-53.el5PAE) root (hd0,0) kernel /vmlinuz-2.6.18-53.el5PAE roroot=LABEL=/ rhgb quiet initrd /initrd-2.6.18-53.el5PAE.img #升級前的系統引導,將其注釋掉 #titleRed Hat Enterprise Linux Server (2.6.18-194.el5) # root (hd0,0) # kernel /vmlinuz-2.6.18-194.el5 roroot=LABEL=/ rhgb quiet # initrd /initrd-2.6.18-194.el5.img 保存後重啟linux,系統內核就能最大支持64G內存了。 通過查,cat/boot/config-*grep PAE可以查看當前的支持情況如下圖顯示。
❻ linux系統最大堆棧內存
linux系統最大堆棧消搜內存是-Xmx512m。根據查找相關公開資料顯敏簡示,linux系統堆棧大小拿拿歷的配置啟動參數,初始堆大小-Xms32m最大堆大小-Xmx512m。