Linux堆內(nèi)存修改及清理命令方式
企業(yè)級的EDI服務(wù)器一般大家都會選擇使用Linux服務(wù)器來進行安裝部署知行之橋,項目在運行過程中有時會提示服務(wù)器內(nèi)存不足,往往得到的反饋都是“我們的服務(wù)器內(nèi)存很大,為什么還是一直提示內(nèi)存不足呢?”
其實是因為分配給知行之橋使用的java堆內(nèi)存不足導(dǎo)致的,這就需要分配充足的java堆內(nèi)存。
本文將介紹如何來進行修改java堆內(nèi)存,及如何進行清理。
修改堆內(nèi)存
1.首先我們需要確認知行之橋進程的pid及jdk版本
pid命令:ps -ef | grep java
如上圖,查到知行之橋進程pid為6956
jdk版本命令:
2.確認目前知行之橋占用的堆內(nèi)存
命令:java 11及以上版本使用:jhsdb jmap --heap --pid 6956
低版本使用:jmap -heap 6956
如上圖,MaxHeapSize表示分配的最大堆內(nèi)存,為244M
3.在知行之橋服務(wù)文件中設(shè)置堆內(nèi)存大小
①進入知行之橋服務(wù)文件目錄,找到arc.service文件
命令:cd /etc/systemd/system
②修改arcesb.service文件中的內(nèi)存設(shè)置參數(shù)
命令:vi arc.service
修改后,:wq保存退出文件編輯。
③執(zhí)行重新加載知行之橋服務(wù)注冊文件:
命令:systemctl daemon-reload
④設(shè)置開機知行之橋服務(wù)自啟動:
命令:systemctl enable arc
⑤重啟知行之橋服務(wù)
命令:service arc restart
⑥確認堆內(nèi)存是否修改成功:
重啟知行之橋后,pid會改變,先查下新的pid
查看堆內(nèi)存:jhsdb jmap --heap --pid 10061,如下圖已更改為500M
⑦確認知行之橋服務(wù)是運行狀態(tài)
堆內(nèi)存清理
如果堆內(nèi)存使用過高,如何進行清理呢?
我們可以通過對java堆內(nèi)存和系統(tǒng)內(nèi)存清理兩種方式進行清理,但是考慮穩(wěn)定性,建議優(yōu)先使用java堆內(nèi)存清理,系統(tǒng)內(nèi)存清理建議服務(wù)器空閑時間再使用。
Java堆內(nèi)存清理
1.查看知行之橋進程的pid
命令:ps -ef | grep java
2.確認目前知行之橋占用的堆內(nèi)存
命令:java 11及以上版本使用:jhsdb jmap --heap --pid 10061
低版本使用:jmap -heap 10061
3.清理java堆內(nèi)存
命令:jcmd 10061 GC.run
4.延遲幾秒,查看清理后堆內(nèi)存占用情況
命令:jhsdb jmap --heap --pid 10061 (jmap -heap 10061)
如上圖java堆內(nèi)存清理成功,從70.10%降到了38.55%。
系統(tǒng)內(nèi)存清理
1.查看系統(tǒng)內(nèi)存使用情況
命令:free -h
2.清理系統(tǒng)內(nèi)存
命令:sync && echo 3 > /proc/sys/vm/drop_caches
3.延遲幾秒,查看清理后系統(tǒng)內(nèi)存情況
如上圖,可用系統(tǒng)內(nèi)存從94M增加到了346M,清理成功。
一些其他常用的關(guān)于EDI服務(wù)器操作的命令
1.查看服務(wù)器所有掛載點及占用比例
命令:df -h
2.查看知行之橋占用對應(yīng)掛載點比例
命令:df /知行之橋安裝目錄
以上結(jié)果表示:知行之橋掛在名為/dev/mapper/centos-root的掛載點上,占用24%的空間
3.查看CPU使用情況
①命令:top #
如上圖,在查詢結(jié)果的第三行有顯示CPU的使用情況,其中:
- %us:表示用戶空間程序的cpu使用率(沒有通過nice調(diào)度)
- %sy:表示系統(tǒng)空間的cpu使用率,主要是內(nèi)核程序。
- %ni:表示用戶空間且通過nice調(diào)度過的程序的cpu使用率。
- %id:空閑cpu
- %wa:cpu運行時在等待io的時間
- %hi:cpu處理硬中斷的數(shù)量
- %si:cpu處理軟中斷的數(shù)量
- %st:被虛擬機偷走的cpu
②命令:vmstat
③命令:sar
sar命令不存在時,需要先安裝sysstat包,安裝命令:yum install sysstat
sar #查看CPU
- %user:用于表示用戶模式下消耗的 CPU 時間的比例;
- %nice:通過 nice 改變了進程調(diào)度優(yōu)先級的進程,在用戶模式下消耗的 CPU 時間的比例;
- %system:系統(tǒng)模式下消耗的 CPU 時間的比例;
- %iowait:CPU 等待磁盤 I/O 導(dǎo)致空閑狀態(tài)消耗的時間比例;
- %steal:利用 Xen 等操作系統(tǒng)虛擬化技術(shù),等待其它虛擬 CPU 計算占用的時間比例;
- %idle:CPU 空閑時間比例。
sar -d查看系統(tǒng)磁盤的讀寫性能
- tps:每秒從物理磁盤 I/O 的次數(shù)。注意,多個邏輯請求會被合并為一個 I/O 磁盤請求,一次傳輸?shù)拇笮∈遣淮_定的;
- rd_sec/s:每秒讀扇區(qū)的次數(shù);
- wr_sec/s:每秒寫扇區(qū)的次數(shù);
- avgrq-sz:平均每次設(shè)備 I/O 操作的數(shù)據(jù)大?。ㄉ葏^(qū));
- avgqu-sz:磁盤請求隊列的平均長度;
- await:從請求磁盤操作到系統(tǒng)完成處理,每次請求的平均消耗時間,包括請求隊列等待時間,單位是毫秒(1 秒=1000 毫秒);
- svctm:系統(tǒng)處理每次請求的平均時間,不包括在請求隊列中消耗的時間;
- %util:I/O 請求占 CPU 的百分比,比率越大,說明越飽和
4.查看inode(存儲文件屬性信息的區(qū)域)
①命令:df -i 查看每個硬盤分區(qū)的inode總數(shù)和已經(jīng)使用的數(shù)量
②命令:stat 文件夾/文件名 查看某個文件夾/文件的inode信息
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
centOS7.4 安裝 mysql 5.7.26的教程詳解
CentOS中默認安裝有MariaDB,這個是MySQL的分支,但為了需要,還是要在系統(tǒng)中安裝MySQL,而且安裝完成之后可以直接覆蓋掉MariaDB。這篇文章主要介紹了centOS7.4 安裝 mysql 5.7.26,需要的朋友可以參考下2019-06-06如何在 CentOS/RHEL 系統(tǒng)中使用帶 VLAN 標(biāo)記的以太網(wǎng)卡
這篇文章主要介紹了如何在 CentOS/RHEL 系統(tǒng)中使用帶 VLAN 標(biāo)記的以太網(wǎng)卡,有對這方面感興趣的同學(xué),可以跟隨小編一起來研究學(xué)習(xí)下吧2020-12-12Ubuntu 18.04 Server 設(shè)置靜態(tài)IP 的方法
Netplan是Ubuntu 17.10中引入的一種新的命令行網(wǎng)絡(luò)配置實用程序,用于在Ubuntu系統(tǒng)中輕松管理和配置網(wǎng)絡(luò)設(shè)置。這篇文章主要介紹了Ubuntu 18.04 Server 設(shè)置靜態(tài)IP 的方法,需要的朋友可以參考下2018-11-11apache documentroot指向htcdoc之外提示403錯誤的解決方法
在windows和RH都碰到過,只要把主目錄指到其他地方后就出現(xiàn)權(quán)限不夠的403提示,郁悶了好久。2010-04-04