online的环境中发现有一个java进程内存占用一直增大,xmx设置的6144m 但是用top -p 查询占用了8.9G内存,上次用jmap查看堆内存只有3个多G 应该继续排查一下堆外内存可能存在的内存泄漏问题。
[root@localhost logs]# top -p 755
top - 09:56:24 up 5 days, 1:56, 2 users, load average: 1.27, 3.27, 5.02
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.6 us, 0.5 sy, 0.0 ni, 96.0 id, 0.8 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 32661788 total, 259524 free, 30131472 used, 2270792 buff/cache
KiB Swap: 31248380 total, 19591088 free, 11657292 used. 2014948 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
755 root 20 0 17.9g 8.9g 6808 S 1.3 28.4 441:16.82 java
MALLOC_ARENA_MAX=4
export JAVA_HOME JRE_HOME MYCAT_HOME PATH CLASSPATH MALLOC_ARENA_MAX
GZIPInputStream 流未关闭引起的内存泄漏问题
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
或grep 'physical id' /proc/cpuinfo | sort -u | wc -l
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
或者grep 'core id' /proc/cpuinfo | sort -u | wc -l
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
或者grep 'processor' /proc/cpuinfo | sort -u | wc -l
# 查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
或者dmidecode -s processor-version
#查看内 存信息
cat /proc/meminfo