hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "nkeywal (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-4965) Monitor the open file descriptors and the threads counters during the unit tests
Date Tue, 06 Dec 2011 22:40:40 GMT

    [ https://issues.apache.org/jira/browse/HBASE-4965?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13163937#comment-13163937

nkeywal commented on HBASE-4965:

Oops. Sorry.
Here they are.

To use then, we need to add these following lines in the test code
  public ResourceCheckerJUnitRule cu = new ResourceCheckerJUnitRule();

It's the less intrusive way I found.

Before and after each code method, we count the number of threads and number of open file
handles, and log them.

Unfortunately, I found a bug in surefire and these lines are not stored with "redirect to
file" option activated. I fixed it locally.

Despite this, I think it makes sense to track these data. It will ease the analysis when something
goes wrong, even if fixing all the current leaks would take quite a lot of time.

> Monitor the open file descriptors and the threads counters during the unit tests
> --------------------------------------------------------------------------------
>                 Key: HBASE-4965
>                 URL: https://issues.apache.org/jira/browse/HBASE-4965
>             Project: HBase
>          Issue Type: Improvement
>          Components: test
>    Affects Versions: 0.94.0
>         Environment: all
>            Reporter: nkeywal
>            Assignee: nkeywal
>            Priority: Minor
>         Attachments: ResourceChecker.java, ResourceCheckerJUnitRule.java
> We're seeing a lot of issues with hadoop-qa related to threads or file descriptors.
> Monitoring these counters would ease the analysis.
> Note as well that
>  - if we want to execute the tests in the same jvm (because the test is small or because
we want to share the cluster) we can't afford to leak too many resources
>  - if the tests leak, it's more difficult to detect a leak in the software itself.
> I attach piece of code that I used. It requires two lines in a unit test class to:
> - before every test, count the threads and the open file descriptor
> - after every test, compare with the previous value.
> I ran it on some tests; we have for example:
> - client.TestMultiParallel#testBatchWithManyColsInOneRowGetAndPut: 232 threads (was 231),
390 file descriptors (was 390). => TestMultiParallel uses 232 threads!
> - client.TestMultipleTimestamps#testWithColumnDeletes: 152 threads (was 151), 283 file
descriptors (was 282).
> - client.TestAdmin#testCheckHBaseAvailableClosesConnection: 477 threads (was 294), 815
file descriptors (was 461)
> - client.TestMetaMigrationRemovingHTD#testMetaMigration: 149 threads (was 148), 310 file
descriptors (was 307).
> It's not always leaks, we can expect some pooling effects. But still...

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message