[
https://issues.apache.org/jira/browse/ZOOKEEPER-1657?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13590950#comment-13590950
]
Gunnar Wagenknecht commented on ZOOKEEPER-1657:
-----------------------------------------------
I got ZooKeeper running using the following additional changes:
{noformat}
===================================================================
--- src/org/apache/zookeeper/ClientCnxn.java (first patched version)
+++ src/org/apache/zookeeper/ClientCnxn.java (working copy)
@@ -939,7 +939,7 @@
setName(getName().replaceAll("\\(.*\\)",
"(" + addr.getHostName() + ":" + addr.getPort() + ")"));
- if (System.getProperty("zookeeper.client.sasl","false") == "true")
{
+ if
(System.getProperty("zookeeper.client.sasl","false").equals("true")) {
try {
zooKeeperSaslClient = new
ZooKeeperSaslClient("zookeeper/"+addr.getHostName());
} catch (LoginException e) {
@@ -1234,9 +1234,10 @@
}
// 2. SendThread has not created the authenticating object yet,
- // therefore authentication is (at the earliest stage of being) in
progress.
+ // therefore authentication is (at the earliest stage of being) in
progress;
+ // but only if SASL is actually in use.
if (zooKeeperSaslClient == null) {
- return true;
+ return
System.getProperty("zookeeper.client.sasl","false").equals("true");
}
// 3. authenticating object exists, so ask it for its progress.
{noformat}
> Increased CPU usage by unnecessary SASL checks
> ----------------------------------------------
>
> Key: ZOOKEEPER-1657
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1657
> Project: ZooKeeper
> Issue Type: Bug
> Components: java client
> Affects Versions: 3.4.5
> Reporter: Gunnar Wagenknecht
> Labels: performance
> Attachments: ZOOKEEPER-1657.patch, zookeeper-hotspot.png
>
>
> I did some profiling in one of our Java environments and found an interesting
> footprint in ZooKeeper. The SASL support seems to trigger a lot times on the
> client although it's not even in use.
> Is there a switch to disable SASL completely?
> The attached screenshot shows a 10-minute profiling session on one of our
> production Jetty servers. The Jetty server handles ~1k web requests per
> minute. The average response time per web request is a few milli seconds. The
> profiling was performed on a machine running for >24h.
> We noticed a significant CPU increase on our servers when deploying an update
> from ZooKeeper 3.3.2 to ZooKeeper 3.4.5. Thus, we started investigating. The
> screenshot shows that only 32% CPU time are spent in Jetty. In contrast, 65%
> are spend in ZooKeeper.
> A few notes/thoughts:
> * {{ClientCnxn$SendThread.clientTunneledAuthenticationInProgress}} seems to
> be the culprit
> * {{javax.security.auth.login.Configuration.getConfiguration}} seems to be
> called very often?
> * There is quite a bit reflection involved in
> {{java.security.AccessController.doPrivileged}}
> * No security manager is active in the JVM: I tend to place an if-check in
> the code before calling {{AccessController.doPrivileged}}. When no SM is
> installed, the runnable can be called directly which safes cycles.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira