mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mauritz Lovgren (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DIRMINA-681) Strange CPU peak occuring at fixed interval when several thousand connections active
Date Tue, 16 Feb 2010 12:01:29 GMT

    [ https://issues.apache.org/jira/browse/DIRMINA-681?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12834180#action_12834180

Mauritz Lovgren commented on DIRMINA-681:

Ran a new loadtest today (on trunk RC2 revision 909546).
I have removed all home-grown executor filters etc etc to run NioAcceptor with standard CORE
mina defaults only.

8500 clients connecting to one NioAcceptor configured to run using 1 thread (new NioSocketAcceptor(1))
just to keep things simple.
The clients are all running on a separate machine from the server. 1Gb LAN, but very small
messages and low bandwidth needed for test.
The clients connect and thereafter send a simple IsAlive message upon idle timeout (120 seconds)
and stay connected forever.
The clients are connecting at a rate of about 10 clients per second.

My observations are as follows:

- At startup everyting looks ok with only two MINA threads running, the NioAcceptor and one
- As clients log on, the WindowSelectorImpl somehow recons that it needs to start SelectorThread
instances to cope with traffic (?).
  After about each 1000 connections, a new selector thread is created.
- The WindowSelectorImpl$SelectorThread instances are linearly causing CPU overhead after
they are created. Before they exist, no extra CPU is seen.
- The profiler claims that the bit of code that is causing the CPU overhead is within the
sun.nio.ch.WindowSelectorImpl$SubSelector.poll0() method which is called by each SelectorThread.run().

Could MINA somehow be (mis)using the select() in a way that causes this situation to occur?
(E.g. calling it too often, or not handling the select keys properly etc etc).
And, I wonder if this might be the epoll bug at all?

> Strange CPU peak occuring at fixed interval when several thousand connections active
> ------------------------------------------------------------------------------------
>                 Key: DIRMINA-681
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-681
>             Project: MINA
>          Issue Type: Task
>          Components: Core
>    Affects Versions: 2.0.0-M4, 2.0.0-RC1
>         Environment: Windows Vista Ultimate 64-bit (on 64-bit Sun JDK 1.6.0_18). Intel
Core 2 Quad Core Q9300 2,5 GHz, 8 GB RAM
>            Reporter: Mauritz Lovgren
>             Fix For: 2.0.0
>         Attachments: screenshot-1.jpg, screenshot-2.jpg, screenshot-3.jpg, screenshot-4.jpg
> Observing strange CPU activity occuring at regular (seemingly fixed) interval with no
protocol traffic activity.
> See attached window capture of task manager that shows this with 3000 active connections.
> Is there some kind of cleanup occuring within MINA core at a predefined interval?
> The 3000 connections in the example above connects within 250 seconds. A normal situation
would be that these connections are established over a longer period of time, perhaps spreading
the CPU peaks shown above as well, flattening the curve.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message