【totti】一道weblogic认证考题所想到的

相比其他认证,参加过BEA的weblogic认证相对较少,如果你是其中一位,对于这道题应该有印象吧。



You are administering a WebLogic domain that consists of an Adminsistration server and a cluster that consists
of two Managed Servers, named serverA and serverB, Respectively. These servers are distribluted between two
machines, machineA and machineB. The Administration server and serverA are on machineA and serverB is on
machineB.
Local and remote clients are complaining about sluggish performance.
Clients seem to be unable to acquire connections to the servers. As you begin to research the problem, you find
that there are no error messages in the logs and the servers are not CPU-bound. Which of the following is
probably the problem?
A.The servers do not have enough RAM.
B.The servers need larger Execute Queues.
C.The servers' AcceptBacklog parameter is set too low.
D.The system should be using a hardware SSL accelerator.
E.The connection to the database server is overwhelmed.


大概的意思就是你是weblogic的系统管理员,你的用户向你抱怨系统性能很差,你要去解决这个问题。但是发现日志系统无报错,并且系统不存在CPU的瓶颈,可能的原因是啥?

正确的答案是C,很多人一冲动就选了A,并且很容易这样的冲动。其实这是一种盲目的条件反射,如果性能一旦出现状况,很多人第一反应就是去增加虚拟机的内 存,即增大-Xmx参数。从-Xmx512m增加到-Xmx1024m,再到-Xmx2048m,性能问题依然存在。这个时候,可能就束手无策啦。

AcceptBacklog属性是用来设定请求WebLogic实例的连接数,在拒绝额外的请求之前,能接受设定的缓存数。 AcceptBacklog属性指定有多少TCP连接缓存在等待队列,规定服务器向操作系统请求的队列大小,这个固定的队列存放了TCP堆栈已经收到但应 用程序还没有收到的连接请求。默认值是50,最大值由操作系统决定。

根据需要修改默认的接受缓存数(Accept Backlog):
1        在运行期间,如果许多客户端连接得不到响应或被拒绝,并且服务器端也没有错误消息,说明接受缓存的值可能太小。
2        在你访问WebLogic时,如果收到"拒绝连接(connection refused)"的提示,则应该增加接受缓存的默认值的25%。继续增加其值的25%,直到停止出现这样的提示。
对于Portal类型的应用,默认值往往是不够的。Login Timeout和SSL Login Timeout参数表示普通连接和SSL连接的超时时间,如果客户连接被服务器中断或者SSL容量大,可以尝试增加该值。

下面想说下Accept Backlog和Queue Length的联系

- AcceptBacklog = number of waiting TCP connections,

- Queue Length = number of requests waiting in a WLS queue.

Use the AcceptBacklog attribute of the Server element in the config.xml file to set the number of connection requests the WebLogic Server instance will accept before refusing additional requests. The AcceptBacklog attribute specifies how many Transmission Control Protocol (TCP) connections can be buffered in a wait queue. This fixed-size queue is populated with requests for connections that the TCP stack has received, but the application has not accepted yet. The default value is 50 and the maximum value is operating system dependent.
我的理解是:也就是说Queue Length是建立在AcceptBacklog之上的,只要AcceptBacklog设置为0,就不会接受任何请求。如果Threads已经达到最高值也会影响AcceptBacklog接受其他的请求。
总结一下就是:
Queue Length 是服务器级的
AcceptBacklog是操作系统上的

posted @ 2008-12-10 17:40  徐之  阅读(1577)  评论(0编辑  收藏  举报