1.关于jdk版本使用
生产环境(客户环境),jdk必须64位。 因为32位内存最高支持4g
2.生产环境和开发环境eclipse 出现内存溢出 PermGen space
tomcat 默认内存分配不足导致的,修改tomcat目录下bin/catalina.bat/sh文件,添加参数如下( 8g内存 推荐配置参数):
windows系统配置:
set JAVA_OPTS=-server -Xms2048m -Xmx6000m -XX:MaxNewSize=512m -XX:MaxPermSize=512m
linux系统,注意“”必须要有,否则不起作用。
set JAVA_OPTS="-Xms2048m -Xmx6000m -Xss1024K -XX:MaxNewSize=512m -XX:MaxPermSize=512m"
3.多线程开启
可以提高并发数量,例如考试系统等。实测400多个考试,单节点tomcat没问题。
修改修改tomcat目录下conf/server.xml 文件,开启Executor节点,修改Connector节点。
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="1000" minSpareThreads="4"/>
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
maxThreads="600"
minSpareThreads="100"
maxSpareThreads="500"
acceptCount="700"
redirectPort="8443" URIEncoding="UTF-8"/>
5.日志log4j的输出降级处理 。
否则性能很低。生产环境(客户环境)一定关掉
程序目录 web-inf/classes/log4j/log4j.properties参数修改如下:
log4j.rootLogger=ERROR
6.特殊字符过滤
由于目前tomcat的版本的不断更新升级,安全性不断增强,有些特殊字符可能会被拦截。
版本7.0.85存在,7.0.47不存在。
conf/catalina.properties文件中参数:
tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}<>
最终解决方案还是代码的优化的处理。
6.tomcat 安全版本
7.0.85 我们使用的是。
Tomcat漏洞说明与安全加固 http://www.cnblogs.com/milantgh/p/3660106.html
7.关于应用程序日志的查找
应用程序安装目录文件下logs文件夹中。例如zcgl/logs。
注意:tomcat启动日志在tomcat安装目录logs文件夹中。
8.tocmat的启动闪退。
大多数原因为jdk环境变量有问题,可以在start.bat/sh,文件中最后一行,添加参数pause;(暂停),进行调试。并查看原因
9.oracle版本选用
建议11g,1.10g很多高危安全性补丁已经添加 2.我们开发环境为11g进行的,尽量进行11g安装。
之前实测:对于遍历循环语句,10g相当慢。
10.eclipse卡,可以关闭validation
原因:项目功能多,js文件也比较多,所以eclipse校验js文件有时会导致cpu爆满
解决:关闭eclipse的validation --> 打开下面截图,按照步骤点击Disable All,保存。
eclipse加速之禁用JS、jsp等文件的语法验证: https://blog.csdn.net/testcs_dn/article/details/39058959
汇总解决方案: https://blog.csdn.net/zhuchunyan_aijia/article/details/50499198
10.Oracle查看正在执行的sql
1、查询Oracle正在执行的sql语句及执行该语句的用户
SELECT b.sid oracleID, b.username Oracle用户, b.serial#, spid 操作系统ID, paddr, sql_text 正在执行的SQL, b.machine 计算机名 FROM v$process a, v$session b, v$sqlarea c WHERE a.addr = b.paddr AND b.sql_hash_value = c.hash_value;
2、查看正在执行sql的发起者的发放程序
SELECT A.serial#,OSUSER 电脑登录身份, PROGRAM 发起请求的程序, USERNAME 登录系统的用户名, SCHEMANAME, B.Cpu_Time 花费cpu的时间, STATUS, B.SQL_TEXT 执行的sql FROM V$SESSION A LEFT JOIN V$SQL B ON A.SQL_ADDRESS = B.ADDRESS AND A.SQL_HASH_VALUE = B.HASH_VALUE ORDER BY b.cpu_time DESC