Tomcat7
开启jpda远程调式
version: "2"
services:
scf-app:
image: registry:5000/bigtree/app/portal-web:1530248984-48b2cb2f072fd27da4d2300c88b0a36c45eda535
volumes:
- /data/jdk1.7.0_80/:/opt/jdk/
- /data/logs/:/opt/tomcat/logs/
command:
- /opt/tomcat/bin/catalina.sh
- jpda
- run
network_mode: "bridge"
ports:
- "7030:9010"
_________________________________________________
tomcat 启用 ssl 证书登录
# ./keytool -genkeypair -alias "ctvit" -keyalg "RSA"
# ls ~/.keystore
# Linux VI 命令 server.xml
<!--
modified by maguirun.
-->
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/root/.keystore"
keystorePass="password"
ciphers="password"
/>
__________________________________________________
<Resource auth="Container" driverClassName="oracle.jdbc.OracleDriver" maxActive="10" maxIdle="2" maxWait="-1" name="jdbc/readdb" password="123456" type="javax.sql.DataSource" url="jdbc:oracle:thin:@10.4.168.228:1521:slave2" username="smsuser"/>
___________________________________________________
esac
## added by maguirun.
JAVA_HOME=/opt/jdk1.6
JAVA_OPTS="-server -Djava.awt.headless=true -Dcom.sun.management.jmxremote.port=45219 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/cloudstack/management/ -XX:PermSize=512M -XX:MaxPermSize=800m"
____________________________________________________
https://www.v2ex.com/t/360097
jvm 参数里面缺少了对新生代的配置,可以通过 `-Xmn` 加上。
`Xms` 和 `Xmx` 都是设置成`Xmx` 的值,避免每次回收(因为初始空间小)之后又扩容.
Survivor Space 是新生代复制回收算法的一个区,其中分为 S0 和 S1,每次回收是这样进行的:Eden+S0->S1,Eden 和 S0 中存活的对象会移动到 S1 中,回收完成时,S0 变空。然后下一轮就是 Eden+S1->S0。
你可以使用 `jstat -gcutil pid 2000 2000` 来观察这个复制回收对新生代的影响。
然后开头的 `-server` 现在没什么用了,x64 的 jdk 自动都已经只有 server 模式了。
建议使用以下的参数:`-Xmx2g -Xms2g -Xmn512m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+UseParallelOldGC -Xloggc:/somewhere/somename.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution`
这个设置将打印 gc 日志,可以使用 gceasy.io 来分析 gc 日志。
ORA 官方介绍垃圾回收器和搭配的文章: https://blogs.oracle.com/jonthecollector/our-collectors
——————————————————————————————
Jconsole 启动参数
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=9999
——————————————————————————————
version: "2"
services:
scf-app:
image: registry:5000/bigtree/app/portal-web:1530248984-48b2cb2f072fd27da4d2300c88b0a36c45eda535
volumes:
- /data/jdk1.7.0_80/:/opt/jdk/
- /data/logs/:/opt/tomcat/logs/
command:
- /opt/tomcat/bin/catalina.sh
- jpda
- run
network_mode: "bridge"
ports:
- "7030:9010"
________________________________________________________________
/usr/local/tomcat/webapps/conf/server.conf。
我的文件如下:
<Host name="localhost" appBase="/data/htdocs/www"
unpackWARs="true" autoDeploy="true">
</Host>
</Engine>
在<host></host>标签之间添加上:
<Context path="" docBase="example" debug="0" reloadable="true" />
path是说明虚拟目录的名字,如果你要只输入ip地址就显示主页,则该键值留为空;
docBase是虚拟目录的路径,它默认的是$tomcat/webapps/ROOT目录,现在我在webapps目录下建了一个example目录,让该目录作为我的默认目录。debug和reloadable一般都分别设置成0和true,重启tomcat应该就可以生效了。
______________________________________________________________________
myron