针对JBOSS访问缓慢做的一些优化

     JBOSS 访问缓慢,查看jboss的并发请求数及其TCP连接状态:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

LAST_ACK 5

SYN_RECV 263

CLOSE_WAIT 30

ESTABLISHED 308

FIN_WAIT1 499

FIN_WAIT2 71

CLOSING 20

TIME_WAIT 19070

检查发现TIME_WAIT 状态链接很高, 这样就需要对内核做些优化,

Vi /etc/sysctl.conf

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 300

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.core.netdev_max_backlog =8096
net.ipv4.ip_local_port_range = 1024    65000

net.ipv4.tcp_max_tw_buckets = 5000

 

修改完记的使用sysctl -p 让它生效

以上参数的注解
/proc/sys/net/ipv4/tcp_tw_reuse
该文件表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接。

/proc/sys/net/ipv4/tcp_tw_recycle
recyse 是加速TIME-WAIT sockets回收

tcp_tw_reusetcp_tw_recycle的修改,可能会出现.warning, got duplicate tcp line warning, got BOGUS tcp line.上面这二个参数指的是存在这两个完全一样的TCP连接,这会发生在一个连接被迅速的断开并且重新连接的情况,而且使用的端口和地址相同。但基本上这样的事情不会发生,无论如何,使能上述设置会增加重现机会。这个提示不会有人和危害,而且也不会降低系统性能,目前正在进行工作

/proc/sys/net/ipv4/tcp_keepalive_time
表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时

/proc/sys/net/ipv4/tcp_fin_timeout     最佳值和BSD一样为30
fin_wait1 状态是在发起端主动要求关闭tcp连接,并且主动发送fin以后,等待接收端回复ack时候的状态。对于本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间。对方可能会断开连接或一直不结束连接或不可预料的进程死亡。

/proc/sys/net/core/netdev_max_backlog
该文件指定了,在接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

net.ipv4.ip_local_port_range = 1024    65000

表示用于向外连接的端口范围。缺省情况下很小:3276861000,改为102465000
 
net.ipv4.tcp_max_tw_buckets = 5000

表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改为5000。对于ApacheNginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。

 

 
其它查看连接数据命令:

1) 统计80端口连接数

netstat -nat|grep -i "80"|wc -l

1

2 )统计httpd协议连接数

ps -ef|grep httpd|wc -l

1

3 )、统计已连接上的,状态为“established'

netstat -na|grep ESTABLISHED|wc -l

2

4) 、查出哪个IP地址连接最多,将其封了.

netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r +0n

 

netstat -na|grep SYN|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r +0n

iptables 的设置:

 

防止同步包洪水(Sync Flood

# iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

也有人写作

#iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT

--limit 1/s 限制syn并发数每秒1次,可以根据自己的需要修改

防止各种端口扫描

# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j

ACCEPT

Ping 洪水***(Ping of Death

# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

 

 

修改JBOSS连接池:
Vi /usr/local/jboss/server/default/deploy/jbossweb-tomcat55.sar/server.xml

<Connector port="80" address="${jboss.bind.address}"

         maxThreads="500" strategy="ms" maxHttpHeaderSize="8192"

         emptySessionPath="true" maxKeepAliveRequests="1"

         enableLookups="false" redirectPort="8443" acceptCount="100"

         connectionTimeout="10000" disableUploadTimeout="true"/>

 

 

修改JBOSS内存:
Vi /usr/local/jboss/bin/run.conf

if [ "x$JAVA_OPTS" = "x" ]; then

   JAVA_OPTS="-Xms1024m -Xmx2048m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"

fi

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值