当前位置:文档之家› linux中的weblogic性能调优

linux中的weblogic性能调优

Linux中的Weblogic性能测试调整一.操作系统参数调整1.linux TCP连接数调整通过命令:ulimit –n 查看当前最大TCP连接数,这表示当前用户的每个进程最多允许同时打开多少个文件。

一般系统默认为1024,在并发量大的情况下肯定不够用。

修改此限制的最简单办法:ulimit –n <file_num> 设置单一进程允许打开的最大文件数。

如果系统回显类似于“Operation not permitted”之类的话,说明修改失败,需要修改系统对该用户打开文件数的软限制或硬限制。

修改软限制或硬限制:修改/etc/security/limits.conf文件,在文件中添加如下行:* soft nofile 10240* hard nofile 10240表示修改所有用户的限制,也可以用指定用户名替代。

修改/etc/pam.d/login文件,在文件中添加如下行:session required /lib/security/pam_limits.so查看Linux系统级的最大打开文件数限制:cat /proc/sys/fs/file-max2.修改网络内核对TCP连接的有关限制端口范围:修改/etc/sysctl.conf文件,在文件中添加如下行:net.ipv4.ip_local_port_range = 1024 65535另外,有时无法建立TCP连接的原因可能是因为Linux网络内核的IP_TABLE防火墙对最大跟踪的TCP连接数有限制修改/etc/sysctl.conf文件,在文件中添加如下行:net.ipv4.ip_conntrack_max = 10240这表明将系统对最大跟踪的TCP连接数限制设置为10240。

请注意,此限制值要尽量小,以节省对内核内存的占用。

3.其他参数调整在/etc/sysctl.conf文件中增加如下参数,进行系统参数调整net.core.rmem_default=128388607 默认的TCP数据接收缓冲net.core.wmem_default=128388607 默认的TCP数据发送缓冲net.core.rmem_max=128388607net.core.wmem_max=128388607net.ipv4.tcp_rmem=8196 128388607 128388607 最小默认最大net.ipv4.tcp_wmem=8196 128388607 128388607net.ipv4.tcp_keepalive_time=1800tcp_keepalive_time 值控制TCP/IP 尝试验证空闲连接是否完好的频率。

如果这段时间内没有活动,则会发送保持活动信号。

如果网络工作正常,而且接收方是活动的,它就会响应。

如果需要对丢失接收方敏感,换句话说,需要更快地发现丢失了接收方,请考虑减小这个值。

如果长期不活动的空闲连接出现次数较多,而丢失接收方的情况出现较少,您可能会要提高该值以减少开销。

缺省情况下,如果空闲连接7200 秒(2 小时)内没有活动,Linux 就发送保持活动的消息。

通常,1800 秒是首选值,从而一半的已关闭连接会在30 分钟内被检测到。

timeout_timewaittimeout_timewait 值确定了在 TCP/IP 可释放已关闭的连接并复用其资源之前,必须等待的时间。

关闭和释放之间的时间间隔称为TIME_WAIT 状态或最长分段生命周期的两倍(2MSL)状态。

在此期间,重新打开客户机和服务器之间的连接比新建一个连接的开销要小。

通过减小该项的值,TCP/IP 可更快地释放已关闭的连接,并可为新连接提供更多的资源。

如果由于多个连接处于 TIME_WAIT 状态导致吞吐量较低,从而正在运行的应用程序需要快速释放连接、创建新的连接或是进行调整,请调整这个参数。

缺省值是 240 秒(4 分钟)。

最小推荐值是 30 秒dev_max_backlog=8096connection backlog可能需要提高连接储备值,以应对大量突发入局连接请求的情况。

如果同时接收到大量连接请求,使用较大的值会提高受支持的暂挂连接的数量,从而可减少连接失败的数量。

请使用以下过程来查看或定制您的值。

echo X > /proc/sys/net/core/netdev_max_backlogecho X > /proc/sys/net/core/somaxconntcp_keepalive_intvltcp_keepalive_intvl 值定义了如果未从接收方收到保持活动消息的响应,TCP/IP 重复发送保持活动信号的频率。

当连续发送保持活动信号、但未收到响应的次数超出 tcp_keepalive_probes 的值时,会放弃该连接。

如果期望较长的响应时间,您可能需要提高该值以减少开销。

如果需要减少花在验证接收方是否已丢失上的时间,请考虑减小该值或 tcp_keepalive_probes 值。

缺省情况下,在未收到响应而重新发送保持活动的消息之前,Linux 会等待 75 秒。

通常,15 秒是首选值,以便能够较快地检测到丢失了接收方。

请使用以下过程来查看或定制您的值。

echo X > /proc/sys/net/ipv4/tcp_keepalive_intvltcp_keepalive_probestcp_keepalive_probes 值定义了 TCP/IP 通过现有连接重新发送未返回应答的保持活动的消息次数。

如果您的网络性能很差,可能需要提高该值以保持有效的通信。

如果您的网络性能很好,可以减小该值以减少验证接收方是否丢失所花费的时间。

缺省情况下,在决定放弃该连接之前,Linux 会发送 9 次未返回应答的保持活动的消息。

通常,5 次是首选值,以便能够较快地检测到丢失了接收方。

请使用以下过程来查看或定制您的值。

echo X > /proc/sys/net/ipv4/tcp_keepalive_probes其中 X 由在未返回应答的情况下,期望的用于保持活动的重新传输的次数替换。

net.ipv4.tcp_window_scaling=0BOOLEAN缺省值为1该文件表示设置tcp/ip会话的滑动窗口大小是否可变。

参数值为布尔值,为1时表示可变,为0时表示不可变。

tcp/ip通常使用的窗口最大可达到65535 字节,对于高速网络,该值可能太小,这时候如果启用了该功能,可以使tcp/ip滑动窗口大小增大数个数量级,从而提高数据传输的能力(RFC 1323)。

(对普通地百M网络而言,关闭会降低开销,所以如果不是高速网络,可以考虑设置为0)net.ipv4.tcp_sack=0BOOLEAN缺省值为1使用Selective ACK﹐它可以用来查找特定的遗失的数据报--- 因此有助于快速恢复状态。

该文件表示是否启用有选择的应答(Selective Acknowledgment),这可以通过有选择地应答乱序接收到的报文来提高性能(这样可以让发送者只发送丢失的报文段)。

(对于广域网通信来说这个选项应该启用,但是这会增加对CPU 的占用。

)net.ipv4.tcp_timestamps=0BOOLEAN缺省值为1Timestamps 用在其它一些东西中﹐可以防范那些伪造的sequence 号码。

一条1G的宽带线路或许会重遇到带out-of-line数值的旧sequence 号码(假如它是由于上次产生的)。

Timestamp 会让它知道这是个'旧封包'。

(该文件表示是否启用以一种比超时重发更精确的方法(RFC 1323)来启用对RTT 的计算;为了实现更好的性能应该启用这个选项。

)net.ipv4.tcp_tw_reuse=1BOOLEAN默认值是0该文件表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接(这个对快速重启动某些服务,而启动后提示端口已经被使用的情形非常有帮助)net.ipv4.tcp_tw_recycle=1BOOLEAN默认值是0打开快速TIME-WAIT sockets 回收。

除非得到技术专家的建议或要求﹐请不要随意修改这个值。

(做NAT的时候,建议打开它)net.ipv4.tcp_fin_timeout=30INTEGER默认值是60对于本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间。

对方可能会断开连接或一直不结束连接或不可预料的进程死亡。

默认值为60 秒。

过去在2.2版本的内核中是180 秒。

您可以设置该值﹐但需要注意﹐如果您的机器为负载很重的web服务器﹐您可能要冒内存被大量无效数据报填满的风险﹐FIN-WAIT-2 sockets 的危险性低于FIN-WAIT-1 ﹐因为它们最多只吃1.5K 的内存﹐但是它们存在时间更长。

另外参考tcp_max_orphans。

(事实上做NA T的时候,降低该值也是好处显著的,我本人的网络环境中降低该值为30)其他参数请参考附录二.Weblogic调整主要从以下几个方面调整:模式:选择产品模式,同时选择JRocket内存参数:设置Weblogic内存大小:set MEM_ARGS=-Xms1024m -Xmx1024m 最大和最小设置一致日志等级:WarningHTTP访问日志:关JDBC POOL:Row Prefetch EnabledInitial CapacityMaximum Capacity (与Initial Capacity设置一致)Statement Cache SizeTest FrequencyTurning:Enable Native IO对需要长时处理的业务,如果出stuck thread警告,需要调整stuck-second 参数,适当加长。

如果出现拒绝连接的错误,适当增加accept-backlog时间,增加接受缓存队列的长度三.附录1.linux内核TCP相关参数解释tcp_syn_retries:INTEGER默认值是5对于一个新建连接,内核要发送多少个SYN 连接请求才决定放弃。

不应该大于255,默认值是5,对应于180秒左右时间。

(对于大负载而物理通信良好的网络而言,这个值偏高,可修改为 2.这个值仅仅是针对对外的连接,对进来的连接,是由tcp_retries1决定的)tcp_synack_retries:INTEGER默认值是5对于远端的连接请求SYN,内核会发送SYN +ACK数据报,以确认收到上一个SYN连接请求包。

这是所谓的三次握手( threeway handshake)机制的第二个步骤。

这里决定内核在放弃连接之前所送出的SYN+ACK 数目。

相关主题