JBoss: Windows vs Linux and a Solaris boot issue

Ryan Bowman ryanlbowman at gmail.com
Tue Mar 7 12:11:50 MST 2006


On 3/6/06, Bryan Sant <bryan.sant at gmail.com> wrote:
> Ok.  The system is virtually asleep.  I have a new request then.
>
> When you get a chance to run your app in Linux under some load execute:

This is not under load, but the poor performance is manifest with just one user.
Oh, and by the way, this is now different hardware, a 32bit install,
with only 2GB RAM total, -Xmx1408m, but the problem is exists.

> uptime
19:40

> vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 0  0      0 585448  91132 907528    0    0     2     6   67    28  0  0 100  0

> netstat -s
Ip:
    1559213 total packets received
    24 with invalid addresses
    0 forwarded
    0 incoming packets discarded
    1559129 incoming packets delivered
    1324626 requests sent out
    90 reassemblies required
    30 packets reassembled ok
Icmp:
    14182 ICMP messages received
    14180 input ICMP message failed.
    ICMP input histogram:
        echo requests: 2
    2 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
        echo replies: 2
Tcp:
    508 active connections openings
    172 passive connection openings
    0 failed connection attempts
    14 connection resets received
    83 connections established
    1476735 segments received
    1324213 segments send out
    60 segments retransmited
    0 bad segments received.
    7 resets sent
Udp:
    4843 packets received
    0 packets to unknown port received.
    14 packet receive errors
    432 packets sent
TcpExt:
    39 packets pruned from receive queue because of socket buffer overrun
    ArpFilter: 0
    411 TCP sockets finished time wait in fast timer
    1 time wait sockets recycled by time stamp
    70992 delayed acks sent
    4 delayed acks further delayed because of locked socket
    Quick ack mode was activated 210 times
    18211 packets directly queued to recvmsg prequeue.
    3600 packets directly received from backlog
    42464 packets directly received from prequeue
    1072820 packets header predicted
    111 packets header predicted and directly queued to user
    TCPPureAcks: 21212
    TCPHPAcks: 914601
    TCPRenoRecovery: 0
    TCPSackRecovery: 0
    TCPSACKReneging: 0
    TCPFACKReorder: 0
    TCPSACKReorder: 0
    TCPRenoReorder: 0
    TCPTSReorder: 0
    TCPFullUndo: 0
    TCPPartialUndo: 0
    TCPDSACKUndo: 0
    TCPLossUndo: 4
    TCPLoss: 0
    TCPLostRetransmit: 0
    TCPRenoFailures: 0
    TCPSackFailures: 0
    TCPLossFailures: 0
    TCPFastRetrans: 0
    TCPForwardRetrans: 0
    TCPSlowStartRetrans: 0
    TCPTimeouts: 25
    TCPRenoRecoveryFail: 0
    TCPSackRecoveryFail: 0
    TCPSchedulerFailed: 0
    TCPRcvCollapsed: 2339
    TCPDSACKOldSent: 210
    TCPDSACKOfoSent: 0
    TCPDSACKRecv: 0
    TCPDSACKOfoRecv: 0
    TCPAbortOnSyn: 0
    TCPAbortOnData: 3
    TCPAbortOnClose: 3
    TCPAbortOnMemory: 0
    TCPAbortOnTimeout: 6
    TCPAbortOnLinger: 0
    TCPAbortFailed: 0
    TCPMemoryPressures: 0

> top -n 1
top - 12:06:08 up 19:51,  5 users,  load average: 0.02, 0.02, 0.06
Tasks: 106 total,   1 running, 105 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2% us,  0.0% sy,  0.0% ni, 99.7% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:  2074672k total,  1490552k used,   584120k free,    91132k buffers
Swap:  1052248k total,        0k used,  1052248k free,   907528k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
12997 root      17   0 1788m 382m  89m S  2.0 18.9   3:17.09 java
    1 root      16   0   692  268  224 S  0.0  0.0   0:01.35 init
    2 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
    4 root      RT   0     0    0    0 S  0.0  0.0   0:00.01 migration/1
    5 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/1
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.02 migration/2
    7 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/2
    8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/3
    9 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/3
   10 root      10  -5     0    0    0 S  0.0  0.0   0:00.15 events/0
   11 root      10  -5     0    0    0 S  0.0  0.0   0:00.04 events/1
   12 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 events/2
   13 root      10  -5     0    0    0 S  0.0  0.0   0:00.01 events/3
   14 root      10  -5     0    0    0 S  0.0  0.0   0:00.01 khelper
   15 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 kthread
   33 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 kacpid

> netstat -tn | grep -v ESTABLISHED
Nothing.

> I think when you run the above commands (please send the output of
> each) we're going to find out that the CPU is waiting on something
> most of the time.  My guess is that you are hitting your kernel's
> currently set TCP/IP stack limits on max open TCP connections and the
> TIME_WAIT problem I described before is the issue -- or -- for
> whatever reason, you're JDBC connection to the MSSQL server isn't
> retrieving data as fast as the 2K3 server is.
>
> -Bryan



More information about the PLUG mailing list