java服务器内存处理
查看服务器总内存占用
free -h
显示如下:
[root@iZuf6j6c7vo33inl2830e3Z spring-application-jar]# free -h
total used free shared buff/cache available
Mem: 1.8G 1.4G 170M 3.7M 259M 284M
Swap: 0B 0B 0B
[root@iZuf6j6c7vo33inl2830e3Z spring-application-jar]#
清除操作系统缓存
echo 3 > /proc/sys/vm/drop_caches
查看java内存占用
top -o %MEM -b -n 1 | grep java | awk '{print "PID: "$1" \t 虚拟内存: "$5 / 1024"M \t 物理内存(实际占用内存): "$6 / 1024"M \t 共享内存: "$7 / 1024"M \t CPU使用率: "$9"% \t 内存使用率: "$10"%"}'
显示如下:
[root@iZuf6j6c7vo33inl2830e3Z spring-application-jar]# top -o %MEM -b -n 1 | grep java | awk '{print "PID: "$1" \t 虚拟内存: "$5 / 1024"M \t 物理内存: "$6 / 1024"M \t 共享内存: "$7 / 1024"M \t CPU使用率: "$9"% \t 内存使用率: "$10"%"}'
PID: 12959 虚拟内存: 2123.05M 物理内存: 329.488M 共享内存: 7.28125M CPU使用率: 0.0% 内存使用率: 17.9%
PID: 10799 虚拟内存: 2110.75M 物理内存: 194.641M 共享内存: 13.418M CPU使用率: 0.0% 内存使用率: 10.6%
PID: 28249 虚拟内存: 2508.25M 物理内存: 194.316M 共享内存: 6.32031M CPU使用率: 0.0% 内存使用率: 10.6%
PID: 25613 虚拟内存: 2331.65M 物理内存: 169.684M 共享内存: 5.15625M CPU使用率: 0.0% 内存使用率: 9.2%
[root@iZuf6j6c7vo33inl2830e3Z spring-application-jar]#
查看PID所在目录
lsof -p PID
# 示例如下
# cwd: 表示 current work dirctory, 即:应用程序的当前工作目录
lsof -p PID | grep cwd
指定JVM内存运行java包
nohup java -jar -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m -Xms128m -Xmx128m -Xmn64m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/java/dump/ microservicecloud-eureka-server-7001-1.0-SNAPSHOT.jar >/dev/null &
Xms : 堆内存初始大小
Xmx : 堆内存最大值
Xmn:年轻代大小
MetaspaceSize: 元空间大小
MaxMetaspaceSize :最大元空间大小
OOM时保存dump文件
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/java/dump/