[SCM] Samba Shared Repository - branch master updated

Amitay Isaacs amitay at samba.org
Fri Sep 12 03:14:04 MDT 2014


The branch, master has been updated
       via  d744eb0 ctdb-doc: Add reference to new magepage ctdb-statistics
       via  efd34bb ctdb-doc: Add ctdb-statistics manual page
       via  f5f11e1 ctdb-daemon: Decrement pending calls statistics when calls are deferred
       via  3c1bae1 ctdb-tests: Do not expect real-time priority when running local daemons
       via  d410b20 ctdb-daemon: Make sure ctdb runs with real-time priority
       via  7ae7a9c ctdb-locking: Fork lock helper with vfork_with_logging()
       via  2e17b0e ctdb-locking: Add argc parameter to lock_helper_args()
      from  8c1b143 media_harmony: Fix a crash bug

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit d744eb03c5236284cf0141c1a2f687263cbd8414
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Fri Sep 12 16:24:09 2014 +1000

    ctdb-doc: Add reference to new magepage ctdb-statistics
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Martin Schwenke <martin at meltin.net>
    
    Autobuild-User(master): Amitay Isaacs <amitay at samba.org>
    Autobuild-Date(master): Fri Sep 12 11:13:56 CEST 2014 on sn-devel-104

commit efd34bb274a5ed015d7fe9374718671e0d7f9cc6
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Fri Sep 12 14:22:00 2014 +1000

    ctdb-doc: Add ctdb-statistics manual page
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Martin Schwenke <martin at meltin.net>

commit f5f11e1a05d4d75a7662d6c413a14c4cd18f8ed9
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Fri Sep 12 10:50:27 2014 +1000

    ctdb-daemon: Decrement pending calls statistics when calls are deferred
    
    Deferred calls should not be treated as pending calls since they are
    re-processed from the beginning.
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Martin Schwenke <martin at meltin.net>

commit 3c1bae12217ead74863a7cdd9b8a338aef80adb1
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Fri Sep 12 11:25:14 2014 +1000

    ctdb-tests: Do not expect real-time priority when running local daemons
    
    Local daemons are started mainly for testing and usually not as root.
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Martin Schwenke <martin at meltin.net>

commit d410b20601cccd8b67d48c42a6d689cd65e94f61
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Fri Sep 12 11:22:36 2014 +1000

    ctdb-daemon: Make sure ctdb runs with real-time priority
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Martin Schwenke <martin at meltin.net>

commit 7ae7a9c46301e4fed870516c448a79bb7a9ac53a
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Aug 13 15:01:54 2014 +1000

    ctdb-locking: Fork lock helper with vfork_with_logging()
    
    Otherwise errors printed by the lock helper get lost.
    
    lock_helper_args() no longer adds the program name to the list of
    arguments, since vfork_with_logging() does that.  Update the lock
    helper to handle the extra log_fd parameter passed by
    vfork_with_logging() and send stdout/stderr there.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>

commit 2e17b0ecddffb8590c4e8b9afaf1767ef7e8f89c
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Aug 13 14:46:31 2014 +1000

    ctdb-locking: Add argc parameter to lock_helper_args()
    
    To make this sane, also add an argv parameter and change the return
    type to bool.  Anticipating a subsequent change, make the type of argv
    match what is needed by vfork_with_logging() and cast it when passing
    to execv().  This also means changing the type of the name member of
    struct db_namelist.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>

-----------------------------------------------------------------------

Summary of changes:
 ctdb/common/system_util.c                    |   11 +-
 ctdb/doc/Makefile                            |    1 +
 ctdb/doc/ctdb-statistics.7.xml               |  669 ++++++++++++++++++++++++++
 ctdb/doc/ctdb.1.xml                          |   14 +-
 ctdb/doc/ctdb.7.xml                          |    3 +
 ctdb/include/ctdb_private.h                  |    2 +-
 ctdb/packaging/RPM/ctdb.spec.in              |    1 +
 ctdb/server/ctdb_daemon.c                    |    8 +-
 ctdb/server/ctdb_lock.c                      |   77 ++--
 ctdb/server/ctdb_lock_helper.c               |   30 +-
 ctdb/tests/simple/scripts/local_daemons.bash |    2 +-
 ctdb/wscript                                 |    4 +-
 12 files changed, 759 insertions(+), 63 deletions(-)
 create mode 100644 ctdb/doc/ctdb-statistics.7.xml


Changeset truncated at 500 lines:

diff --git a/ctdb/common/system_util.c b/ctdb/common/system_util.c
index 692bc25..8e8f4ac 100644
--- a/ctdb/common/system_util.c
+++ b/ctdb/common/system_util.c
@@ -37,7 +37,7 @@
 /*
   if possible, make this task real time
  */
-void set_scheduler(void)
+bool set_scheduler(void)
 {
 #ifdef _AIX_
 #if HAVE_THREAD_SETSCHED
@@ -47,14 +47,15 @@ void set_scheduler(void)
 	ti = 0ULL;
 	if (getthrds64(getpid(), &te, sizeof(te), &ti, 1) != 1) {
 		DEBUG(DEBUG_ERR, ("Unable to get thread information\n"));
-		return;
+		return false;
 	}
 
 	if (thread_setsched(te.ti_tid, 0, SCHED_RR) == -1) {
 		DEBUG(DEBUG_ERR, ("Unable to set scheduler to SCHED_RR (%s)\n",
 				  strerror(errno)));
+		return false;
 	} else {
-		DEBUG(DEBUG_NOTICE, ("Set scheduler to SCHED_RR\n"));
+		return true;
 	}
 #endif
 #else /* no AIX */
@@ -70,11 +71,13 @@ void set_scheduler(void)
 	if (sched_setscheduler(0, policy, &p) == -1) {
 		DEBUG(DEBUG_CRIT,("Unable to set scheduler to SCHED_FIFO (%s)\n",
 			 strerror(errno)));
+		return false;
 	} else {
-		DEBUG(DEBUG_NOTICE,("Set scheduler to SCHED_FIFO\n"));
+		return true;
 	}
 #endif
 #endif
+	return false;
 }
 
 /*
diff --git a/ctdb/doc/Makefile b/ctdb/doc/Makefile
index 34303a5..b2240a3 100644
--- a/ctdb/doc/Makefile
+++ b/ctdb/doc/Makefile
@@ -6,6 +6,7 @@ DOCS = ctdb.1 ctdb.1.html \
 	ping_pong.1 ping_pong.1.html \
 	ctdbd.conf.5 ctdbd.conf.5.html \
 	ctdb.7 ctdb.7.html \
+	ctdb-statistics.7 ctdb-statistics.7.html \
 	ctdb-tunables.7 ctdb-tunables.7.html
 
 all: $(DOCS)
diff --git a/ctdb/doc/ctdb-statistics.7.xml b/ctdb/doc/ctdb-statistics.7.xml
new file mode 100644
index 0000000..77301ab
--- /dev/null
+++ b/ctdb/doc/ctdb-statistics.7.xml
@@ -0,0 +1,669 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE refentry
+	PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+	"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+
+<refentry id="ctdb-statistics.7">
+
+  <refmeta>
+    <refentrytitle>ctdb-statistics</refentrytitle>
+    <manvolnum>7</manvolnum>
+    <refmiscinfo class="source">ctdb</refmiscinfo>
+    <refmiscinfo class="manual">CTDB - clustered TDB database</refmiscinfo>
+  </refmeta>
+
+  <refnamediv>
+    <refname>ctdb-statistics</refname>
+    <refpurpose>CTDB statistics output</refpurpose>
+  </refnamediv>
+
+  <refsect1>
+    <title>OVERALL STATISTICS</title>
+
+    <para>
+      CTDB maintains information about various messages communicated
+      and some of the important operations per node.  See the
+      <citerefentry><refentrytitle>ctdb</refentrytitle>
+      <manvolnum>1</manvolnum></citerefentry> commands
+      <command>statistics</command> and <command>statisticsreset</command>
+      for displaying statistics.
+    </para>
+
+      <refsect2>
+	<title>Example: ctdb statistics</title>
+	<screen>
+CTDB version 1
+Current time of statistics  :                Fri Sep 12 13:32:32 2014
+Statistics collected since  : (000 01:49:20) Fri Sep 12 11:43:12 2014
+ num_clients                        6
+ frozen                             0
+ recovering                         0
+ num_recoveries                     2
+ client_packets_sent           281293
+ client_packets_recv           296317
+ node_packets_sent             452387
+ node_packets_recv             182394
+ keepalive_packets_sent          3927
+ keepalive_packets_recv          3928
+ node
+     req_call                   48605
+     reply_call                     1
+     req_dmaster                23404
+     reply_dmaster              24917
+     reply_error                    0
+     req_message                  958
+     req_control               197513
+     reply_control             153705
+ client
+     req_call                  130866
+     req_message                  770
+     req_control               168921
+ timeouts
+     call                           0
+     control                        0
+     traverse                       0
+ locks
+     num_calls                    220
+     num_current                    0
+     num_pending                    0
+     num_failed                     0
+ total_calls                   130866
+ pending_calls                      0
+ childwrite_calls                   1
+ pending_childwrite_calls             0
+ memory_used                   334490
+ max_hop_count                     18
+ total_ro_delegations               2
+ total_ro_revokes                   2
+ hop_count_buckets: 42816 5464 26 1 0 0 0 0 0 0 0 0 0 0 0 0
+ lock_buckets: 9 165 14 15 7 2 2 0 0 0 0 0 0 0 0 0
+ locks_latency      MIN/AVG/MAX     0.000685/0.160302/6.369342 sec out of 214
+ reclock_ctdbd      MIN/AVG/MAX     0.004940/0.004969/0.004998 sec out of 2
+ reclock_recd       MIN/AVG/MAX     0.000000/0.000000/0.000000 sec out of 0
+ call_latency       MIN/AVG/MAX     0.000006/0.000719/4.562991 sec out of 126626
+ childwrite_latency MIN/AVG/MAX     0.014527/0.014527/0.014527 sec out of 1
+	</screen>
+      </refsect2>
+
+    <refsect2>
+      <title>CTDB version</title>
+      <para>
+        Version of the ctdb protocol used by the node.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>Current time of statistics</title>
+      <para>
+        Time when the statistics are generated.
+      </para>
+      <para>
+        This is useful when collecting statistics output periodically
+        for post-processing.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>Statistics collected since</title>
+      <para>
+	Time when ctdb was started or the last time statistics was reset.
+	The output shows the duration and the timestamp.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>num_clients</title>
+      <para>
+        Number of processes currently connected to CTDB's unix socket.
+        This includes recovery daemon, ctdb tool and samba processes
+        (smbd, winbindd).
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>frozen</title>
+      <para>
+	1 if the the databases are currently frozen, 0 otherwise.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>recovering</title>
+      <para>
+	1 if recovery is active, 0 otherwise.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>num_recoveries</title>
+      <para>
+	Number of recoveries since the start of ctdb or since the last
+	statistics reset.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>client_packets_sent</title>
+      <para>
+	Number of packets sent to client processes via unix domain socket.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>client_packets_recv</title>
+      <para>
+	Number of packets received from client processes via unix domain socket.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>node_packets_sent</title>
+      <para>
+	Number of packets sent to the other nodes in the cluster via TCP.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>node_packets_recv</title>
+      <para>
+	Number of packets received from the other nodes in the cluster via TCP.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>keepalive_packets_sent</title>
+      <para>
+	Number of keepalive messages sent to other nodes.
+      </para>
+      <para>
+	CTDB periodically sends keepalive messages to other nodes.
+	See <citetitle>KeepaliveInterval</citetitle> tunable in
+	<citerefentry><refentrytitle>ctdb-tunables</refentrytitle>
+	<manvolnum>7</manvolnum></citerefentry> for more details.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>keepalive_packets_recv</title>
+      <para>
+	Number of keepalive messages received from other nodes.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>node</title>
+      <para>
+	This section lists various types of messages processed which
+	originated from other nodes via TCP.
+      </para>
+
+    <refsect3>
+      <title>req_call</title>
+      <para>
+        Number of REQ_CALL messages from the other nodes.
+      </para>
+    </refsect3>
+
+    <refsect3>
+      <title>reply_call</title>
+      <para>
+        Number of REPLY_CALL messages from the other nodes.
+      </para>
+    </refsect3>
+
+    <refsect3>
+      <title>req_dmaster</title>
+      <para>
+        Number of REQ_DMASTER messages from the other nodes.
+      </para>
+    </refsect3>
+
+    <refsect3>
+      <title>reply_dmaster</title>
+      <para>
+        Number of REPLY_DMASTER messages from the other nodes.
+      </para>
+    </refsect3>
+
+    <refsect3>
+      <title>reply_error</title>
+      <para>
+        Number of REPLY_ERROR messages from the other nodes.
+      </para>
+    </refsect3>
+
+    <refsect3>
+      <title>req_message</title>
+      <para>
+        Number of REQ_MESSAGE messages from the other nodes.
+      </para>
+    </refsect3>
+
+    <refsect3>
+      <title>req_control</title>
+      <para>
+        Number of REQ_CONTROL messages from the other nodes.
+      </para>
+    </refsect3>
+
+    <refsect3>
+      <title>reply_control</title>
+      <para>
+        Number of REPLY_CONTROL messages from the other nodes.
+      </para>
+    </refsect3>
+
+    </refsect2>
+
+    <refsect2>
+      <title>client</title>
+      <para>
+	This section lists various types of messages processed which
+	originated from clients via unix domain socket.
+      </para>
+
+    <refsect3>
+      <title>req_call</title>
+      <para>
+        Number of REQ_CALL messages from the clients.
+      </para>
+    </refsect3>
+
+    <refsect3>
+      <title>req_message</title>
+      <para>
+        Number of REQ_MESSAGE messages from the clients.
+      </para>
+    </refsect3>
+
+    <refsect3>
+      <title>req_control</title>
+      <para>
+        Number of REQ_CONTROL messages from the clients.
+      </para>
+    </refsect3>
+
+    </refsect2>
+
+    <refsect2>
+      <title>timeouts</title>
+      <para>
+	This section lists timeouts occurred when sending various messages.
+      </para>
+
+    <refsect3>
+      <title>call</title>
+      <para>
+        Number of timeouts for REQ_CALL messages.
+      </para>
+    </refsect3>
+
+    <refsect3>
+      <title>control</title>
+      <para>
+        Number of timeouts for REQ_CONTROL messages.
+      </para>
+    </refsect3>
+
+    <refsect3>
+      <title>traverse</title>
+      <para>
+        Number of timeouts for database traverse operations.
+      </para>
+    </refsect3>
+    </refsect2>
+
+    <refsect2>
+      <title>locks</title>
+      <para>
+	This section lists locking statistics.
+      </para>
+
+    <refsect3>
+      <title>num_calls</title>
+      <para>
+        Number of completed lock calls.  This includes database locks
+        and record locks.
+      </para>
+    </refsect3>
+
+    <refsect3>
+      <title>num_current</title>
+      <para>
+        Number of scheduled lock calls.  This includes database locks
+        and record locks.
+      </para>
+    </refsect3>
+
+    <refsect3>
+      <title>num_pending</title>
+      <para>
+        Number of queued lock calls.  This includes database locks and
+        record locks.
+      </para>
+    </refsect3>
+
+    <refsect3>
+      <title>num_failed</title>
+      <para>
+        Number of failed lock calls.  This includes database locks and
+        record locks.
+      </para>
+    </refsect3>
+
+    </refsect2>
+
+    <refsect2>
+      <title>total_calls</title>
+      <para>
+	Number of req_call messages processed from clients.  This number
+	should be same as client --> req_call.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>pending_calls</title>
+      <para>
+	Number of req_call messages which are currenly being processed.
+	This number indicates the number of record migrations in flight.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>childwrite_calls</title>
+      <para>
+	Number of record update calls.	Record update calls are used to
+	update a record under a transaction.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>pending_childwrite_calls</title>
+      <para>
+	Number of record update calls currently active.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>memory_used</title>
+      <para>
+	The amount of memory in bytes currently used by CTDB using
+	talloc.  This includes all the memory used for CTDB's internal
+	data structures.  This does not include the memory mapped TDB
+	databases.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>max_hop_count</title>
+      <para>
+	The maximum number of hops required for a record migration request
+	to obtain the record.  High numbers indicate record contention.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>total_ro_delegations</title>
+      <para>
+	Number of readonly delegations created.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>total_ro_revokes</title>
+      <para>
+	Number of readonly delegations that were revoked.  The difference
+	between total_ro_revokes and total_ro_delegations gives the
+	number of currently active readonly delegations.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>hop_count_buckets</title>
+      <para>
+	Distribution of migration requests based on hop counts values.
+	Buckets are 1, < 4, < 8, < 16, < 32, < 64, <
+	128, < 256, < 512, ≥ 512.
+      </para>
+    </refsect2>
+
+    <refsect2>
+      <title>lock_buckets</title>
+      <para>
+	Distribution of record lock requests based on time required to
+	obtain locks.  Buckets are < 1ms, < 10ms, < 100ms,
+	< 1s, < 2s, < 4s, < 8s, < 16s, < 32s, <
+	64s, ≥ 64s.


-- 
Samba Shared Repository


More information about the samba-cvs mailing list