亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問該如何調高linux單進程使用的內存上限?

請問該如何調高linux單進程使用的內存上限?

呼如林 2019-08-17 11:10:55
如何調高linux單進程使用的內存上限
查看完整描述

4 回答

?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

有限制,你首先需要分清,物理內存和虛擬內存的概念。然后你需要知道什么是“虛空間”。

物理內存到虛擬內存的轉換因不同 CPU 和操作系統的不同而不同,而且機制過于復雜,不說了。

首先,不是說你的機器有 1.5G 的物理內存就可以分配到內存。為什么呢?
因為操作系統對進程的內存管理首先是分配給進程一個“虛空間”,用戶根本看不見物理內存,它所有的內存都從“虛空間”種分配。

比如 Windows 在 X86 上分配給每個進程 4G 的虛空間,這個虛空間需要軟件和硬件共同實現,同樣,機制過于復雜,不說了。其中 Windows 系統占用 2G,分配給用戶 2G。另外 Windows 會把這個空間劃分成若干個區域,malloc 的內存就來自其中的 heap 區,加入系統給你的 heap 區域是 500M,那么你只能申請總共小于 500M 的虛擬內存,而不管你的物理內存大于 500M;同樣你即使只有 10M 的物理內存剩余了,一個新創建的進程照樣可以分配到 500M 的虛擬空間(只要你的硬盤足夠大,這個涉及到交換技術,過于復雜,不說了)。

查看完整回答
反對 回復 2019-08-18
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

進程最大打開文件描述符數:user limit中nofile的soft limit
a. 查看
$ ulimit -n
1700000
2. 設置
a. 臨時性:通過ulimit -Sn設置最大打開文件描述符數的soft limit,注意soft limit不能大于hard limit(ulimit -Hn可查看hard limit),另外ulimit -n默認查看的是soft limit,但是ulimit -n 1800000則是同時設置soft limit和hard limit。對于非root用戶只能設置比原來小的hard limit。
查看hard limit:
$ ulimit -Hn
1700000
設置soft limit,必須小于hard limit:
$ ulimit -Sn 1600000
2. 永久性:上面的方法只是臨時性的,注銷重新登錄就失效了,而且不能增大hard limit,只能在hard limit范圍內修改soft limit。若要使修改永久有效,則需要在/etc/security/limits.conf中進行設置(需要root權限),可添加如下兩行,表示用戶chanon最大打開文件描述符數的soft limit為1800000,hard limit為2000000。以下設置需要注銷之后重新登錄才能生效:
chanon soft nofile 1800000
chanon hard nofile 2000000
設置nofile的hard limit還有一點要注意的就是hard limit不能大于/proc/sys/fs/nr_open,假如hard limit大于nr_open,注銷后無法正常登錄??梢孕薷膎r_open的值:
# echo 2000000 > /proc/sys/fs/nr_open




查看完整回答
反對 回復 2019-08-18
  • 4 回答
  • 0 關注
  • 1855 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號