性能优化(二)Ubuntu内核、Tomcat优化
创始人
2024-11-05 05:39:11
0

内核优化:

网络

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 

Tomcat调优:

** 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配置中

连接相关参数
  • acceptCount:允许的最大连接数
  • enableLookups:是否反查域名,取值为: true 或 false 。为了提高处理能力,应设置为 false
  • connectionTimeout:网络连接超时,单位:毫秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为 30000 毫秒。
连接器connector的并发处理能力
  • maxThreads 客户请求最大线程数,要根据自己的实际情况合理设置,设置越大会耗费内存和 CPU,因为 CPU 疲于线程上下文切换,没有精力提供请求服务了
  • minSpareThreads Tomcat初始化时创建的 socket 线程数
  • maxSpareThreads Tomcat连接器的最大空闲 socket 线程数(少)
  • enableLookups 若设为true, 则支持域名解析,可把 ip 地址解析为主机名
  • redirectPort 在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口
  • acceptAccount 监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads)
  • connectionTimeout 连接超时
  • URIEncoding URL统一编码
缓存优化
  • compression 打开压缩功能
  • compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB
  • compressableMimeType 压缩类型
  • connectionTimeout 定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间
                

注:带宽问题,提升带宽;sql问题,慢sql排查+索引;缓存中间件ehcache

相关内容

热门资讯

4分钟透视!we poke有挂... 4分钟透视!we poke有挂,(德州wepower)好像真的有挂,安装教程(有挂妙计);1、首先打...
1分钟透视!wepoke系统,... 1分钟透视!wepoke系统,(we poker)本来真的有挂,解密教程(有挂手册)1、玩家可以在w...
6分钟黑科技!wepoke系统... 6分钟黑科技!wepoke系统规律,(WepOke)一直真的有挂,黑科技教程(有挂课程)1)WepO...
四分钟黑科技!wepoke真的... 四分钟黑科技!wepoke真的,(WepokE)的确真的有挂,爆料教程(有挂积累)1、该软件可以轻松...
八分钟黑科技!wepoke黑科... 八分钟黑科技!wepoke黑科技透明挂,(wEpOke)总是真的有挂,wpk教程(有挂阶段)1、金币...
4分钟黑科技!weopke真的... 4分钟黑科技!weopke真的,(WePoke)果然真的有挂,技巧教程(有挂练习);1、首先打开We...
9分钟黑科技!wepoke软件... 9分钟黑科技!wepoke软件透明是真的,(we-poker)果然真的有挂,AI教程(有挂方案);1...
三分钟黑科技!wepoke挂透... 三分钟黑科技!wepoke挂透视,(WEPoke)的确真的有挂,必赢方法(有挂绝活)1、用户打开应用...
2分钟黑科技!wepokewo... 2分钟黑科技!wepokewopoker透明挂,(WEPoke)果真真的有挂,总结教程(有挂举措)1...
3分钟透视!wepoke线上,... 3分钟透视!wepoke线上,(wepoker)一般真的有挂,切实教程(有挂举措);1、让任何用户在...