tee -a /etc/sysctl.conf <<'EOF' # 调整提升服务器负载能力之外,还能够防御小流量的Dos、CC和SYN攻击 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 # net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_fin_timeout = 60 net.ipv4.tcp_synack_retries = 1 net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_fastopen = 3 # 优化TCP的可使用端口范围及提升服务器并发能力(注意一般流量小的服务器上没必要设置如下参数) net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.ip_local_port_range = 1024 65535 # 优化核套接字TCP的缓存区 net.core.netdev_max_backlog = 8192 net.core.somaxconn = 8192 net.core.rmem_max = 12582912 net.core.rmem_default = 6291456 net.core.wmem_max = 12582912 net.core.wmem_default = 6291456 EOF #配置生效 /sbin/sysctl -p /etc/sysctl.conf /sbin/sysctl -w net.ipv4.route.flush=1
echo "ulimit -HSn 65535" >> /etc/rc.local echo "ulimit -HSn 65535" >>/root/.bash_profile echo "ulimit -SHn 65535" >> /etc/profile ulimit -SHn 65535 tee -a /etc/security/limits.conf <<'EOF' # ulimit -HSn 65535 # ulimit -HSu 65535 * soft nofile 65535 * hard nofile 65535 * soft nproc 65535 * hard nproc 65535 EOF
** JAVA_OPTS **
-server: 启用jdk的server版,一定要作为第一个参数,在多个CPU时性能佳
-Xms: 初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
-Xmx: java heap最大值,使用的最大内存,上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。 -Xms与-Xmx设成一样的值,避免JVM因为频繁的GC导致性能大起大落
-XX:PermSize:设定内存的永久保存区域
-XX:MaxPermSize:设定最大内存的永久保存区域
-XX:MaxNewSize:
-Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.
+XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
-Xss:每个线程的Stack大小
-verbose:gc 现实垃圾收集信息
-Xloggc:gc.log 指定垃圾收集日志文件
-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一
-XX:+UseParNewGC :缩短minor收集的时间
-XX:+UseConcMarkSweepGC :缩短major收集的时间 提示:此选项在Heap Size 比较大而且Major收集时间较长的情况下使用更合适。
Linux下修改TOMCAT_HOME/bin/catalina.sh JAVA_OPTS="-server -XX:PermSize=512M -XX:MaxPermSize=1024m -Xms2048m -Xmx2048m windows下修改TOMCAT_HOME/bin/catalina.bat set JAVA_OPTS=-server -XX:PermSize=512M -XX:MaxPermSize=1024m -Xms2048m -Xmx2048m
堆内存设置:
-Xms 初始堆大小。如:-Xms256m或2G,默认为物理内存1/64。
-Xmx 最大堆大小。如:-Xmx512m或2G,默认为物理内存1/4。
非堆内存设置:
-XX:PermSize 永久代(方法区)的初始大小,默认为物理内存1/64。
-XX:MaxPermSize 永久代(方法区)的最大值,默认为物理内存1/4。
并发调优
Tomcat配置文件conf/server.xml 中的Connector配置中
注:带宽问题,提升带宽;sql问题,慢sql排查+索引;缓存中间件ehcache