tomcat启动内存,及JVM启动内存。主要分成两种:堆内存,非堆内存。
-Xms256m -Xmx768m -XX:PermSize=128M -XX:MaxPermSize=256M
可以看到 -Xms启动堆内存 -Xmx最大堆内存 -XX:PermSize=启动非堆内存 -XX:MaxPermSize=最大非堆内存
windows下设置tomcat启动内存
找到tomcat在debug里面 vm arguments 在后面添加启动参数:
Linux下修改JVM内存大小:(已测试,可用)
要添加在tomcat 的bin 下catalina.sh 里,位置cygwin=false前 。注意引号要带上,红色的为新添加的.
# OS specific support. $var _must_ be set to either true or false.
JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m"
cygwin=false
windows下修改JVM内存大小:(待测试)
情况一:解压版本的Tomcat, 要通过startup.bat启动tomcat才能加载配置
要添加在tomcat 的bin 下catalina.bat 里
rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%后面添加,红色的为新添加的.
set JAVA_OPTS=-Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true
查看某进程正在使用内存:pmap
1. 使用lsof 查出哪个进程占用了端口
imw@cloud160:~/apache-tomcat-7.0.29> lsof -i:18088
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 6585 imw 39u IPv6 105246284 0t0 TCP *:18088 (LISTEN)
2. 使用pmap加进程号查询内存使用情况:
imw@cloud160:~/apache-tomcat-7.0.29> pmap -d 6585
看最后一行:
1523452K writable-private, 106300K readonly-private, 2672K shared, and 289328K referenced
writable-private 是本进程真正占用的内存 ,以如上为例,6585占用了106M的内存。
3. 不断的用pmap查看内存使用情况:
imw@cloud160:~/apache-tomcat-7.0.29> while true; do pmap -d 6585 | tail -1; sleep 2; done
1523452K writable-private, 106300K readonly-private, 2672K shared, and 289364K referenced
1523452K writable-private, 106300K readonly-private, 2672K shared, and 289364K referenced
1523452K writable-private, 106300K readonly-private, 2672K shared, and 289364K referenced
话不多说,一目了然。
查看系统用了多少内存: free
imw@cloud160:~/apache-tomcat-7.0.29/bin> free -m
total used free shared buffers cached
Mem: 15571 14520 1050 0 422 9864
-/+ buffers/cache: 4234 11337
Swap: 5122 0 5122
用了4234M ,还剩11337M