You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Joshua McKenzie (JIRA)" <ji...@apache.org> on 2014/04/29 20:06:16 UTC

[jira] [Comment Edited] (CASSANDRA-7001) Windows launch feature parity - augment launch process using PowerShell to match capabilities of *nix launching

    [ https://issues.apache.org/jira/browse/CASSANDRA-7001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13984597#comment-13984597 ] 

Joshua McKenzie edited comment on CASSANDRA-7001 at 4/29/14 6:04 PM:
---------------------------------------------------------------------

While doing some win7 bare-metal vs. ubuntu 14.04 bare-metal performance comparisons I came across the fact that my env changes broke VisualGC functionality.  Took some digging, but it turns out that
* the cygwin install I had on my previous win8 config was screwing with the TMP/TEMP environment variables and getting in the way of .NET's invoking of libraries from powershell.  Clearing those variables wasn't strictly necessary, and...
* if you clear TMP and TEMP before invoking a jvm, it doesn't know where to put some files that are necessary for jps, visualgc, and likely some other utilities to work.

I've attached a v2 that fixes that.

As for the performance front - Windows writes look to be about 6% slower than linux at saturation.  On the read front it looks like Windows is much more CPU-heavy without memory-mapped I/O than linux - 4 HT haswell peg at 100% on 54 threads vs. linux at 181, however with memory-mapped index file I/O Windows read performance looks surprisingly good.

I'm planning on shelving performance profiling until after cleaning up the unit and dtests, but I wanted to have a general baseline of where we are currently as well as confirm no performance regressions from this patch.

Edit: I should clarify - the tests vs. OSX earlier had the stress client running on the same machine as the cassandra instance.  Given Windows being CPU-bottlenecked on buffered I/O, the # of threads on the stress client were mucking with the results.


was (Author: joshuamckenzie):
While doing some win7 bare-metal vs. ubuntu 14.04 bare-metal performance comparisons I came across the fact that my env changes broke VisualGC functionality.  Took some digging, but it turns out that
* the cygwin install I had on my previous win8 config was screwing with the TMP/TEMP environment variables and getting in the way of .NET's invoking of libraries from powershell.  Clearing those variables wasn't strictly necessary, and...
* if you clear TMP and TEMP before invoking a jvm, it doesn't know where to put some files that are necessary for jps, visualgc, and likely some other utilities to work.

I've attached a v2 that fixes that.

As for the performance front - Windows writes look to be about 6% slower than linux at saturation.  On the read front it looks like Windows is much more CPU-heavy without memory-mapped I/O than linux - 4 HT haswell peg at 100% on 54 threads vs. linux at 181, however with memory-mapped index file I/O Windows read performance looks surprisingly good.

I'm planning on shelving performance profiling until after cleaning up the unit and dtests, but I wanted to have a general baseline of where we are currently as well as confirm no performance regressions from this patch.

> Windows launch feature parity - augment launch process using PowerShell to match capabilities of *nix launching
> ---------------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-7001
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7001
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Joshua McKenzie
>            Assignee: Joshua McKenzie
>             Fix For: 2.1 rc1
>
>         Attachments: 7001_v1.txt, 7001_v2.txt
>
>
> The current .bat-based launching has neither the logic nor robustness of a bash or PowerShell-based solution.  In pursuit of making Windows a 1st-class citizen for C*, we need to augment the launch-process using something like PowerShell to get as close to feature-parity as possible with Linux.



--
This message was sent by Atlassian JIRA
(v6.2#6252)