SlideShare une entreprise Scribd logo
1  sur  131
Télécharger pour lire hors ligne
JMX and Cassandra
Understanding tooling for advanced operations
Hi, I'm Nate.
@zznate
https://www.linkedin.com/in/zznate
http://www.slideshare.net/zznate/
Co-Founder, CTO
The Last Pickle
Apache Cassandra PMC member
User since 2009 (v0.4)
Austin, Texas Wellington, NZ
TLP: not just "Aaron and Nate"
Lots of information
in the next 30 minutes
1. Tools
2. Visibility and exploration
3. Operations and invocation
4. Access controls
JMX and Cassandra
1. Summary of the tools
nodetool
mx4j
jmxsh|jmxterm
jconsole
Tools:
Nodetool: the cruise line of cluster administration
output of nodetool help
(87 commands)
usage: nodetool [(-u <username> | --username <username>)]
[(-pw <password> | --password <password>)] [(-h <host> | --host <host>)]
[(-p <port> | --port <port>)]
[(-pwf <passwordFilePath> | --password-file <passwordFilePath>)] <command>
[<args>]
The most commonly used nodetool commands are:
assassinate Forcefully remove a dead node without re-replicating any data. Use as a last resort if you cannot removenode
bootstrap Monitor/manage node's bootstrap process
cleanup Triggers the immediate cleanup of keys no longer belonging to a node. By default, clean all keyspaces
clearsnapshot Remove the snapshot with the given name from the given keyspaces. If no snapshotName is specified we will remove all snapshots
compact Force a (major) compaction on one or more tables
compactionhistory Print history of compaction
compactionstats Print statistics on compactions
decommission Decommission the *node I am connecting to*
describecluster Print the name, snitch, partitioner and schema version of a cluster
describering Shows the token ranges info of a given keyspace
disableautocompaction Disable autocompaction for the given keyspace and table
disablebackup Disable incremental backup
disablebinary Disable native transport (binary protocol)
disablegossip Disable gossip (effectively marking the node down)
disablehandoff Disable storing hinted handoffs
disablehintsfordc Disable hints for a data center
disablethrift Disable thrift server
drain Drain the node (stop accepting writes and flush all tables)
enableautocompaction Enable autocompaction for the given keyspace and table
enablebackup Enable incremental backup
enablebinary Reenable native transport (binary protocol)
enablegossip Reenable gossip
enablehandoff Reenable future hints storing on the current node
enablehintsfordc Enable hints for a data center that was previsouly disabled
enablethrift Reenable thrift server
failuredetector Shows the failure detector information for the cluster
flush Flush one or more tables
gcstats Print GC Statistics
getcompactionthreshold Print min and max compaction thresholds for a given table
getcompactionthroughput Print the MB/s throughput cap for compaction in the system
getendpoints Print the end points that owns the key
getinterdcstreamthroughput Print the Mb/s throughput cap for inter-datacenter streaming in the system
getlogginglevels Get the runtime logging levels
getsstables Print the sstable filenames that own the key
getstreamthroughput Print the Mb/s throughput cap for streaming in the system
gettraceprobability Print the current trace probability value
gossipinfo Shows the gossip information for the cluster
help Display help information
info Print node information (uptime, load, ...)
invalidatecountercache Invalidate the counter cache
invalidatekeycache Invalidate the key cache
invalidaterowcache Invalidate the row cache
join Join the ring
listsnapshots Lists all the snapshots along with the size on disk and true size.
move Move node on the token ring to a new token
netstats Print network information on provided host (connecting node by default)
pausehandoff Pause hints delivery process
proxyhistograms Print statistic histograms for network operations
rangekeysample Shows the sampled keys held across all keyspaces
rebuild Rebuild data by streaming from other nodes (similarly to bootstrap)
rebuild_index A full rebuild of native secondary indexes for a given table
refresh Load newly placed SSTables to the system without restart
refreshsizeestimates Refresh system.size_estimates
reloadtriggers Reload trigger classes
removenode Show status of current node removal, force completion of pending removal or remove provided ID
repair Repair one or more tables
replaybatchlog Kick off batchlog replay and wait for finish
resetlocalschema Reset node's local schema and resync
resumehandoff Resume hints delivery process
ring Print information about the token ring
scrub Scrub (rebuild sstables for) one or more tables
setcachecapacity Set global key, row, and counter cache capacities (in MB units)
setcachekeystosave Set number of keys saved by each cache for faster post-restart warmup. 0 to disable
setcompactionthreshold Set min and max compaction thresholds for a given table
setcompactionthroughput Set the MB/s throughput cap for compaction in the system, or 0 to disable throttling
sethintedhandoffthrottlekb Set hinted handoff throttle in kb per second, per delivery thread.
setinterdcstreamthroughput Set the Mb/s throughput cap for inter-datacenter streaming in the system, or 0 to disable throttling
setlogginglevel Set the log level threshold for a given class. If both class and level are empty/null, it will reset to the initial configuration
setstreamthroughput Set the Mb/s throughput cap for streaming in the system, or 0 to disable throttling
settraceprobability Sets the probability for tracing any given request to value. 0 disables, 1 enables for all requests, 0 is the default
snapshot Take a snapshot of specified keyspaces or a snapshot of the specified table
status Print cluster information (state, load, IDs, ...)
statusbackup Status of incremental backup
statusbinary Status of native transport (binary protocol)
statusgossip Status of gossip
statushandoff Status of storing future hints on the current node
statusthrift Status of thrift server
stop Stop compaction
stopdaemon Stop cassandra daemon
tablehistograms Print statistic histograms for a given table
tablestats Print statistics on tables
toppartitions Sample and print the most active partitions for a given column family
tpstats Print usage statistics of thread pools
truncatehints Truncate all hints on the local node, or truncate hints for the endpoint(s) specified.
upgradesstables Rewrite sstables (for the requested tables) that are not on the current version (thus upgrading them to said current version)
verify Verify (check data checksum for) one or more tables
version Print cassandra version
See 'nodetool help <command>' for more information on a specific command.
nodetool commands: info
ID : fed6dd09-667c-4cc5-b66a-85a1cbce1b58
Gossip active : true
Thrift active : false
Native Transport active: true
Load : 219.97 KB
Generation No : 1473125362
Uptime (seconds) : 28802
Heap Memory (MB) : 86.96 / 495.00
Off Heap Memory (MB) : 0.00
Data Center : datacenter1
Rack : rack1
Exceptions : 0
Key Cache : entries 27, size 2.15 KB, capacity 24 MB, 274 hits, 313 requests, 0.875 recent hit rate, 14400 save period in seconds
Row Cache : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds
Counter Cache : entries 0, size 0 bytes, capacity 12 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds
Token : -9223372036854775808
nodetool commands: info
ID : fed6dd09-667c-4cc5-b66a-85a1cbce1b58
Gossip active : true
Thrift active : false
Native Transport active: true
Load : 219.97 KB
Generation No : 1473125362
Uptime (seconds) : 28802
Heap Memory (MB) : 86.96 / 495.00
Off Heap Memory (MB) : 0.00
Data Center : datacenter1
Rack : rack1
Exceptions : 0
Key Cache : entries 27, size 2.15 KB, capacity 24 MB, 274 hits, 313 requests, 0.875 recent hit rate, 14400 save period in seconds
Row Cache : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds
Counter Cache : entries 0, size 0 bytes, capacity 12 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds
Token : -9223372036854775808
nodetool commands: info
ID : fed6dd09-667c-4cc5-b66a-85a1cbce1b58
Gossip active : true
Thrift active : false
Native Transport active: true
Load : 219.97 KB
Generation No : 1473125362
Uptime (seconds) : 28802
Heap Memory (MB) : 86.96 / 495.00
Off Heap Memory (MB) : 0.00
Data Center : datacenter1
Rack : rack1
Exceptions : 0
Key Cache : entries 27, size 2.15 KB, capacity 24 MB, 274 hits, 313 requests, 0.875 recent hit rate, 14400 save period
Row Cache : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds
Counter Cache : entries 0, size 0 bytes, capacity 12 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds
Token : -9223372036854775808
nodetool commands: info
ID : fed6dd09-667c-4cc5-b66a-85a1cbce1b58
Gossip active : true
Thrift active : false
Native Transport active: true
Load : 219.97 KB
Generation No : 1473125362
Uptime (seconds) : 28802
Heap Memory (MB) : 86.96 / 495.00
Off Heap Memory (MB) : 0.00
Data Center : datacenter1
Rack : rack1
Exceptions : 0
Key Cache : entries 27, size 2.15 KB, capacity 24 MB, 274 hits, 313 requests, 0.875 recent hit rate, 14400 save period
Row Cache : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds
Counter Cache : entries 0, size 0 bytes, capacity 12 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds
Token : -9223372036854775808
tip: nodetool setcachecapacity <key> <row> <counter>
$ nodetool compactionstats -H
pending tasks: 2101
id type keyspace table completed total progress
d14fc600-6e3f-11e6-a01c-8bcdc0e93c44 Compaction ads ad_events 742.58 MB 4.1 TB 0.02%
Active compaction remaining time : 37h18m47s
nodetool commands: compactionstats
$ nodetool compactionstats -H
pending tasks: 2101
id type keyspace table completed total progress
d14fc600-6e3f-11e6-a01c-8bcdc0e93c44 Compaction ads ad_events 742.58 MB 4.1 TB 0.02%
Active compaction remaining time : 37h18m47s
nodetool commands: compactionstats
nodetool commands: compactionstats
$ nodetool compactionstats -H
pending tasks: 2101
id type keyspace table completed total progress
d14fc600-6e3f-11e6-a01c-8bcdc0e93c44 Compaction ads ad_events 742.58 MB 4.1 TB 0.02%
Active compaction remaining time : 37h18m47s
nodetool commands: tablestats
Keyspace: jmx_adventure
Read Count: 19
Read Latency: 0.3552105263157895 ms.
Write Count: 3
Write Latency: 0.17766666666666667 ms.
Pending Flushes: 0
Table: account_event
SSTable count: 1
Space used (live): 5326
Space used (total): 5326
Space used by snapshots (total): 0
Off heap memory used (total): 51
SSTable Compression Ratio: 0.6517241379310345
Number of keys (estimate): 3
Memtable cell count: 0
Memtable data size: 0
Memtable off heap memory used: 0
Memtable switch count: 1
Local read count: 19
Local read latency: 0.386 ms
Local write count: 3
Local write latency: 0.207 ms
Pending flushes: 0
Bloom filter false positives: 0
Bloom filter false ratio: 0.00000
Bloom filter space used: 16
Bloom filter off heap memory used: 8
Index summary off heap memory used: 27
Compression metadata off heap memory used: 16
Compacted partition minimum bytes: 51
Compacted partition maximum bytes: 149
Compacted partition mean bytes: 104
Average live cells per slice (last five minutes): 2.263157894736842
Maximum live cells per slice (last five minutes): 3
Average tombstones per slice (last five minutes): 1.0
Maximum tombstones per slice (last five minutes): 1
nodetool commands: tablestats
Keyspace: jmx_adventure
Read Count: 19
Read Latency: 0.3552105263157895 ms.
Write Count: 3
Write Latency: 0.17766666666666667 ms.
Pending Flushes: 0
Table: account_event
SSTable count: 1
Space used (live): 5326
Space used (total): 5326
Space used by snapshots (total): 0
Off heap memory used (total): 51
SSTable Compression Ratio: 0.6517241379310345
Number of keys (estimate): 3
Memtable cell count: 0
Memtable data size: 0
Memtable off heap memory used: 0
Memtable switch count: 1
Local read count: 19
Local read latency: 0.386 ms
Local write count: 3
Local write latency: 0.207 ms
Pending flushes: 0
Bloom filter false positives: 0
Bloom filter false ratio: 0.00000
Bloom filter space used: 16
Bloom filter off heap memory used: 8
Index summary off heap memory used: 27
Compression metadata off heap memory used: 16
Compacted partition minimum bytes: 51
Compacted partition maximum bytes: 149
Compacted partition mean bytes: 104
Average live cells per slice (last five minutes): 2.263157894736842
Maximum live cells per slice (last five minutes): 3
Average tombstones per slice (last five minutes): 1.0
Maximum tombstones per slice (last five minutes): 1
tombstones per read
partition size
read and write latency
memtable usage
index summary usage
nodetool commands: tablestats
Keyspace: jmx_adventure
Read Count: 19
Read Latency: 0.3552105263157895 ms.
Write Count: 3
Write Latency: 0.17766666666666667 ms.
Pending Flushes: 0
Table: account_event
SSTable count: 1
Space used (live): 5326
Space used (total): 5326
Space used by snapshots (total): 0
Off heap memory used (total): 51
SSTable Compression Ratio: 0.6517241379310345
Number of keys (estimate): 3
Memtable cell count: 2
Memtable data size: 122
Memtable off heap memory used: 96
Memtable switch count: 1
Local read count: 19
Local read latency: 0.386 ms
Local write count: 3
Local write latency: 0.207 ms
Pending flushes: 0
Bloom filter false positives: 0
Bloom filter false ratio: 0.00000
Bloom filter space used: 16
Bloom filter off heap memory used: 8
Index summary off heap memory used: 27
Compression metadata off heap memory used: 16
Compacted partition minimum bytes: 51
Compacted partition maximum bytes: 149
Compacted partition mean bytes: 104
Average live cells per slice (last five minutes): 2.263157894736842
Maximum live cells per slice (last five minutes): 3
Average tombstones per slice (last five minutes): 1.0
Maximum tombstones per slice (last five minutes): 1
tombstones per read
partition size
read and write latency
memtable usage
index summary usage
nodetool commands: tablestats
Keyspace: jmx_adventure
Read Count: 19
Read Latency: 0.3552105263157895 ms.
Write Count: 3
Write Latency: 0.17766666666666667 ms.
Pending Flushes: 0
Table: account_event
SSTable count: 1
Space used (live): 5326
Space used (total): 5326
Space used by snapshots (total): 0
Off heap memory used (total): 51
SSTable Compression Ratio: 0.6517241379310345
Number of keys (estimate): 3
Memtable cell count: 0
Memtable data size: 0
Memtable off heap memory used: 0
Memtable switch count: 1
Local read count: 19
Local read latency: 0.386 ms
Local write count: 3
Local write latency: 0.207 ms
Pending flushes: 0
Bloom filter false positives: 0
Bloom filter false ratio: 0.00000
Bloom filter space used: 16
Bloom filter off heap memory used: 8
Index summary off heap memory used: 27
Compression metadata off heap memory used: 16
Compacted partition minimum bytes: 51
Compacted partition maximum bytes: 149
Compacted partition mean bytes: 104
Average live cells per slice (last five minutes): 2.263157894736842
Maximum live cells per slice (last five minutes): 3
Average tombstones per slice (last five minutes): 1.0
Maximum tombstones per slice (last five minutes): 1
tombstones per read
partition size
read and write latency
memtable usage
index summary usage
nodetool commands: tablestats
Keyspace: jmx_adventure
Read Count: 19
Read Latency: 0.3552105263157895 ms.
Write Count: 3
Write Latency: 0.17766666666666667 ms.
Pending Flushes: 0
Table: account_event
SSTable count: 1
Space used (live): 5326
Space used (total): 5326
Space used by snapshots (total): 0
Off heap memory used (total): 51
SSTable Compression Ratio: 0.6517241379310345
Number of keys (estimate): 3
Memtable cell count: 0
Memtable data size: 0
Memtable off heap memory used: 0
Memtable switch count: 1
Local read count: 19
Local read latency: 0.386 ms
Local write count: 3
Local write latency: 0.207 ms
Pending flushes: 0
Bloom filter false positives: 0
Bloom filter false ratio: 0.00000
Bloom filter space used: 16
Bloom filter off heap memory used: 8
Index summary off heap memory used: 27
Compression metadata off heap memory used: 16
Compacted partition minimum bytes: 51
Compacted partition maximum bytes: 149
Compacted partition mean bytes: 104
Average live cells per slice (last five minutes): 2.263157894736842
Maximum live cells per slice (last five minutes): 3
Average tombstones per slice (last five minutes): 1.0
Maximum tombstones per slice (last five minutes): 1
tombstones per read
partition size
read and write latency
memtable usage
index summary usage
nodetool commands: tablestats
Keyspace: jmx_adventure
Read Count: 19
Read Latency: 0.3552105263157895 ms.
Write Count: 3
Write Latency: 0.17766666666666667 ms.
Pending Flushes: 0
Table: account_event
SSTable count: 1
Space used (live): 5326
Space used (total): 5326
Space used by snapshots (total): 0
Off heap memory used (total): 51
SSTable Compression Ratio: 0.6517241379310345
Number of keys (estimate): 3
Memtable cell count: 0
Memtable data size: 0
Memtable off heap memory used: 0
Memtable switch count: 1
Local read count: 19
Local read latency: 0.386 ms
Local write count: 3
Local write latency: 0.207 ms
Pending flushes: 0
Bloom filter false positives: 0
Bloom filter false ratio: 0.00000
Bloom filter space used: 16
Bloom filter off heap memory used: 8
Index summary off heap memory used: 27
Compression metadata off heap memory used: 16
Compacted partition minimum bytes: 51
Compacted partition maximum bytes: 149
Compacted partition mean bytes: 104
Average live cells per slice (last five minutes): 2.263
Maximum live cells per slice (last five minutes): 3
Average tombstones per slice (last five minutes): 1.0
Maximum tombstones per slice (last five minutes): 1
tombstones per read
partition size
read and write latency
memtable usage
index summary usage
nodetool commands: tablehistograms
$ nodetool tablehistograms jmx_adventure account_event
jmx_adventure/account_event histograms
Percentile SSTables Write Latency Read Latency Partition Size Cell Count
(micros) (micros) (bytes)
50% 1.00 263.21 315.85 103 1
75% 2.00 315.85 545.79 149 1
95% 2.00 315.85 1131.75 149 1
98% 2.00 315.85 1131.75 149 1
99% 2.00 315.85 1131.75 149 1
Min 1.00 35.43 152.32 51 0
Max 2.00 315.85 1131.75 149 1
nodetool commands: proxyhistograms
$ nodetool proxyhistograms
proxy histograms
Percentile Read Latency Write Latency Range Latency
(micros) (micros) (micros)
50% 454.83 1131.75 1629.72
75% 785.94 12108.97 8409.01
95% 4866.32 12108.97 20924.30
98% 129557.75 12108.97 20924.30
99% 129557.75 12108.97 20924.30
Min 219.34 315.85 943.13
Max 129557.75 12108.97 20924.30
JMX on the HTTP
mx4j
JMX on the HTTP
mx4jbroken in 3.x
JMX on the HTTP
when it does work, it looks like this (2.2.7 and below):
JMX on the HTTP
when it does work, it looks like this:
ewww gross.
JMX on the HTTP (with JSON!)
via Jolokia
https://jolokia.org/
JMX on the HTTP (with JSON!)
via Jolokia
https://jolokia.org/
JSON: it's ok.
JMX on the HTTP (with JSON!)
via Jolokia
http://search.maven.org/remotecontent?filepath=org/jolokia/jolokia-jvm/1.3.4/jolokia-jvm-1.3.4-
agent.jar
1. download: jolokia-jvm-1.3.4-agent.jar
2. place in: $CASSANDRA_HOME/lib
3. in cassandra-env.sh, add: JVM_OPTS="$JVM_OPTS -
javaagent:$CASSANDRA_HOME/lib/jolokia-
jvm-1.3.4-agent.jar"
JMX on the command line
jmxsh
jmxterm
http://wiki.cyclopsgroup.org/jmxterm/download.html
https://github.com/davr/jmxsh
jmxsh
jmxterm
JMX on the command line
http://wiki.cyclopsgroup.org/jmxterm/download.html
https://github.com/davr/jmxsh
Almost identical!
jmxsh
jmxterm
JMX on the command line
http://wiki.cyclopsgroup.org/jmxterm/download.html
https://github.com/davr/jmxsh
Almost identical!
Not updated in years!
JMX on the command line
$ java -jar $HOME/services/jmxterm-1.0-alpha-4-uber.jar -l 127.0.0.1:7200
Welcome to JMX terminal. Type "help" for available commands.
$>bean org.apache.cassandra.net:type=MessagingService
#bean is set to org.apache.cassandra.net:type=MessagingService
$>get TimeoutsPerHost
#mbean = org.apache.cassandra.net:type=MessagingService:
TimeoutsPerHost = {
127.0.0.1 = 0;
127.0.0.3 = 0;
};
JMX on the command line
$ java -jar $HOME/services/jmxterm-1.0-alpha-4-uber.jar -l 127.0.0.1:7200
Welcome to JMX terminal. Type "help" for available commands.
$>bean org.apache.cassandra.net:type=MessagingService
#bean is set to org.apache.cassandra.net:type=MessagingService
$>get TimeoutsPerHost
#mbean = org.apache.cassandra.net:type=MessagingService:
TimeoutsPerHost = {
127.0.0.1 = 0;
127.0.0.3 = 0;
};
JMX on the command line
$ java -jar $HOME/services/jmxterm-1.0-alpha-4-uber.jar -l 127.0.0.1:7200
Welcome to JMX terminal. Type "help" for available commands.
$>bean org.apache.cassandra.net:type=MessagingService
#bean is set to org.apache.cassandra.net:type=MessagingService
$>get TimeoutsPerHost
#mbean = org.apache.cassandra.net:type=MessagingService:
TimeoutsPerHost = {
127.0.0.1 = 0;
127.0.0.3 = 0;
};
JMX on the command line
$ java -jar $HOME/services/jmxterm-1.0-alpha-4-uber.jar -l 127.0.0.1:7200
Welcome to JMX terminal. Type "help" for available commands.
$>bean org.apache.cassandra.net:type=MessagingService
#bean is set to org.apache.cassandra.net:type=MessagingService
$>get TimeoutsPerHost
#mbean = org.apache.cassandra.net:type=MessagingService:
TimeoutsPerHost = {
127.0.0.1 = 0;
127.0.0.3 = 0;
};
JMX on the command line
$ echo "set -b org.apache.cassandra.db:type=CompactionManager 
MaximumCompactorThreads 6" | 
java -jar jmxterm-1.0-alpha-4-uber.jar -l 172.17.41.232:7199 
&& 
echo "set -b org.apache.cassandra.db:type=CompactionManager 
CoreCompactorThreads 6" | 
java -jar jmxterm-1.0-alpha-4-uber.jar -l 172.17.41.232:7199
setting compaction threads in one shot
JMX on the command line
$ echo "set -b org.apache.cassandra.db:type=CompactionManager 
MaximumCompactorThreads 6" | 
java -jar jmxterm-1.0-alpha-4-uber.jar -l 172.17.41.232:7199 
&& 
echo "set -b org.apache.cassandra.db:type=CompactionManager 
CoreCompactorThreads 6" | 
java -jar jmxterm-1.0-alpha-4-uber.jar -l 172.17.41.232:7199
just echo and 'pipe'
setting compaction threads in one shot
$>bean org.apache.cassandra.db:type=BatchlogManager
#bean is set to org.apache.cassandra.db:type=BatchlogManager
$>info
#mbean = org.apache.cassandra.db:type=BatchlogManager
#class name = org.apache.cassandra.batchlog.BatchlogManager
# attributes
%0 - TotalBatchesReplayed (long, r)
# operations
%0 - int countAllBatches()
%1 - void forceBatchlogReplay()
#there's no notifications
$>get TotalBatchesReplayed
#mbean = org.apache.cassandra.db:type=BatchlogManager:
TotalBatchesReplayed = 0;
$>run countAllBatches
#calling operation countAllBatches of mbean org.apache.cassandra.db:type=BatchlogManager
#operation returns:
0
JMX on the command line: general syntax
$>bean org.apache.cassandra.db:type=BatchlogManager
#bean is set to org.apache.cassandra.db:type=BatchlogManager
$>info
#mbean = org.apache.cassandra.db:type=BatchlogManager
#class name = org.apache.cassandra.batchlog.BatchlogManager
# attributes
%0 - TotalBatchesReplayed (long, r)
# operations
%0 - int countAllBatches()
%1 - void forceBatchlogReplay()
#there's no notifications
$>get TotalBatchesReplayed
#mbean = org.apache.cassandra.db:type=BatchlogManager:
TotalBatchesReplayed = 0;
$>run countAllBatches
#calling operation countAllBatches of mbean org.apache.cassandra.db:type=BatchlogManager
#operation returns:
0
JMX on the command line: general syntax
Set the bean
$>bean org.apache.cassandra.db:type=BatchlogManager
#bean is set to org.apache.cassandra.db:type=BatchlogManager
$>info
#mbean = org.apache.cassandra.db:type=BatchlogManager
#class name = org.apache.cassandra.batchlog.BatchlogManager
# attributes
%0 - TotalBatchesReplayed (long, r)
# operations
%0 - int countAllBatches()
%1 - void forceBatchlogReplay()
#there's no notifications
$>get TotalBatchesReplayed
#mbean = org.apache.cassandra.db:type=BatchlogManager:
TotalBatchesReplayed = 0;
$>run countAllBatches
#calling operation countAllBatches of mbean org.apache.cassandra.db:type=BatchlogManager
#operation returns:
0
'info' for what is available
JMX on the command line: general syntax
$>bean org.apache.cassandra.db:type=BatchlogManager
#bean is set to org.apache.cassandra.db:type=BatchlogManager
$>info
#mbean = org.apache.cassandra.db:type=BatchlogManager
#class name = org.apache.cassandra.batchlog.BatchlogManager
# attributes
%0 - TotalBatchesReplayed (long, r)
# operations
%0 - int countAllBatches()
%1 - void forceBatchlogReplay()
#there's no notifications
$>get TotalBatchesReplayed
#mbean = org.apache.cassandra.db:type=BatchlogManager:
TotalBatchesReplayed = 0;
$>run countAllBatches
#calling operation countAllBatches of mbean org.apache.cassandra.db:type=BatchlogManager
#operation returns:
0
'get' an attribute
JMX on the command line: general syntax
$>bean org.apache.cassandra.db:type=BatchlogManager
#bean is set to org.apache.cassandra.db:type=BatchlogManager
$>info
#mbean = org.apache.cassandra.db:type=BatchlogManager
#class name = org.apache.cassandra.batchlog.BatchlogManager
# attributes
%0 - TotalBatchesReplayed (long, r)
# operations
%0 - int countAllBatches()
%1 - void forceBatchlogReplay()
#there's no notifications
$>get TotalBatchesReplayed
#mbean = org.apache.cassandra.db:type=BatchlogManager:
TotalBatchesReplayed = 0;
$>run countAllBatches
#calling operation countAllBatches of mbean org.apache.cassandra.db:type=BatchlogManager
#operation returns:
0
'run' an operation
JMX on the command line: general syntax
JMX on JConsole
JMX on JConsole
Note: Complex-type (like arrays) are grayed out
JMX on JConsole
Note: Complex-type (like arrays) are grayed out
tool-specific invocations
JMX on JConsole
Getting object name and attributes for CLI invocation
A note about remote connections
cassandra-env.sh
using LOCAL_JMX="no"
cassandra-env.sh
false
not there by default
using LOCAL_JMX="no"
2. Visibility and exploration
org.apache.cassandra.metrics.*
(Hopefully you saw Alain's monitoring talk)
troubleshooting cluster communication
cluster communication
Looking at small vs. large tasks (>64k) provides an idea of
network efficiency
cluster communication
what does this node think of the others?
cluster communication
Click the value to see PhiValues for other nodes
Commitlog efficiency: waiting on commit
If this stays close to commitlog_size_in_mb
there are bigger issues
Commitlog efficiency: waiting on commit
Commitlog efficiency: waiting on commit
If this is high, you need to tune
Time spent waiting for sync. This will climb if
sync is lagging sync interval
Commitlog efficiency: segment allocation
time spent waiting on segment allocation
Tombstone impact and compaction
SSTable max local deletion time: 2147483647
Compression ratio: 0.5167785234899329
Estimated droppable tombstones: 0.3175
SSTable Level: 0
Repaired at: 0
Estimated tombstone drop times:
1471577046: 2
1471577146: 2
la-8-big-Data.db
Tombstone impact and compaction
SSTable max local deletion time: 2147483647
Compression ratio: 0.5167785234899329
Estimated droppable tombstones: 0.3175
SSTable Level: 0
Repaired at: 0
Estimated tombstone drop times:
1471577046: 2
1471577146: 2
la-8-big-Data.db
Go see Alain's other talk
Tombstone impact and compaction
SSTable max local deletion time: 2147483647
Compression ratio: 0.5167785234899329
Estimated droppable tombstones: 0.3175
SSTable Level: 0
Repaired at: 0
Estimated tombstone drop times:
1471577046: 2
1471577146: 2
la-8-big-Data.db
Go see Alain's other talk
Or just read his blog:
http://thelastpickle.com/blog/2016/07/27/about-deletes-and-tombstones.html
droppable tombstone ratio
clicking on the value provides a handy chart!
3. Useful management incantations
Routing client requests away
Set to '50.0' for routing away requests
Figuring out if DynamicSnitch
is kneecapping you
https://issues.apache.org/jira/browse/
CASSANDRA-6908
$>get Scores
#mbean = org.apache.cassandra.db:type=DynamicEndpointSnitch:
Scores = {
/10.10.20.31 = 2.244811534881592;
/10.10.20.30 = 0.5457598567008972;
/10.10.20.37 = 2.7038445472717285;
/10.10.20.36 = 3.0801687240600586;
/10.10.20.39 = 6.231578826904297;
/10.10.20.38 = 3.1578946113586426;
/10.10.20.33 = 12.003381729125977;
/10.10.20.32 = 3.348876476287842;
/10.10.20.35 = 1.5086206197738647;
/10.10.20.34 = 4.9235992431640625;
/10.20.1.46 = 2.621400833129883;
/10.20.1.44 = 1.3118916749954224;
/10.20.1.45 = 1.6884760856628418;
/10.30.50.62 = 2.4780631123519523;
/10.30.50.63 = 2.3196894221189543;
/10.30.50.61 = 1.2922532529365727;
/10.20.1.50 = 7.66961669921875;
/10.20.1.48 = 1.686340570449829;
/10.30.50.68 = 0.9854942156774241;
/10.20.8.81 = 0.7212558388710022;
/10.30.50.78 = 2.4760895589502847;
/10.30.50.79 = 1.2857443196017568;
/10.30.50.76 = 0.7804878048780488;
/10.30.50.77 = 1.8351790061811122;
/10.20.1.102 = 2.4894514083862305;
/10.20.1.103 = 0.5889776945114136;
/10.20.1.106 = 0.8040626645088196;
/10.20.1.104 = 1.4327855110168457;
/10.20.1.105 = 0.75789475440979;
};
DynamicSnitch: ouch!
most common with real fast
hardware
- dramatic fluctuations
- 22x difference!
Turn it off via StorageService#updateSnitch:
GossipingPropertyFileSnitch, false, 0, 0, 0
DynamicSnitch: disabling
Turn it off via StorageService#updateSnitch:
GossipingPropertyFileSnitch, false, 0, 0, 0
DynamicSnitch: disabling
false
Turn it off via StorageService#updateSnitch:
GossipingPropertyFileSnitch, false, 0, 0, 0
DynamicSnitch: disabling
I have no idea what will happen
if you change the snitch
Controlling
Compaction
CompactionManager: compaction throttling++
- MaximumCompactorThreads (change this first!!!)
- CoreCompactorThreads
(tip: see jmxterm example from earlier for CLI invocation)
CompactionManager: compact a set of stables
one or more "*-Data.db" files, comma-delimited
jmx_adventure/account-7029d8406d8411e6b3678b7e928ec63e/mb-2-big-Data.db
Version dependent filename
CompactionManager: compact a set of stables
jmx_adventure/account-7029d8406d8411e6b3678b7e928ec63e/mb-2-big-Data.db
Version dependent filename
keyspace
CompactionManager: compact a set of stables
jmx_adventure/account-7029d8406d8411e6b3678b7e928ec63e/mb-2-big-Data.db
Version dependent filename
table + version UUID
CompactionManager: compact a set of stables
jmx_adventure/account-7029d8406d8411e6b3678b7e928ec63e/mb-2-big-Data.db
Version dependent filename
data file
CompactionManager: compact a set of stables
CompactionManager: stop compaction
type of compaction, most commonly:
COMPACTION, VALIDATION, ANTI_COMPACTION, INDEX_SUMMARY
https://github.com/apache/cassandra/blob/cassandra-3.0/src/java/org/apache/cassandra/db/compaction/OperationType.java
Compaction identifier of active compaction
CompactionManager: stop compaction
Find the identifier of active compactions here
(or nodetool compactionstats)
CompactionManager: stop compaction
Update compaction strategy
CompactionParametersJson: Editable JSON
CompactionParametersJson: Editable JSON
test compaction settings on single node!!!
Update compaction strategy
Managing hinted handoff
HintedHandoffManager
Delete all hints or by host
HintedHandoffManager
Pause and resume delivery by host
HintedHandoffManager
StorageProxy: Adjust hint delivery settings
StorageProxy: Adjust hint delivery settings
On/off switch for hints
StorageProxy: Adjust hint delivery settings
How long to keep hints in milliseconds (3 hours by default)
StorageProxy: Adjust hint delivery settings
How many hints to send at a time
Adjusting operation timeouts
StorageProxy: Adjust operation timeouts
Amount of time spent in LWT Contention
StorageProxy: Adjust operation timeouts
Amount of time spent in LWT Contention
See Chris' LWT presentation!
StorageProxy: Adjust operation timeouts
timeout for counter writes
StorageProxy: Adjust operation timeouts
Timeout for range queries
(poorly bounded select statements)
StorageProxy: Adjust operation timeouts
Timeout for single read operation
StorageProxy: Adjust operation timeouts
Timeout for other miscellaneous inter-cluster operations
StorageProxy: Adjust operation timeouts
Timeout for write operations
StorageProxy: Adjust operation timeouts
special shoutout to TruncateRpcTimeout
cqlsh> truncate table account;
TimeoutException...
StorageProxy: Adjust operation timeouts
If you truncate, increase this by an order of magnitude
Index sampling and summary
SSTable
Index summaries
Invoke occasionally on a single node
Index summaries
Invoke occasionally on a single node
Warning: expensive operation!
Index summaries
watch the metrics for tuning
Index summaries
Table: account_event
...
Index summary off heap memory used: 27732
...
combine with nodetool tablestats, then adjust:
min_index_interval, max_index_interval
StorageService ...miscellaneous, etc
StorageService: batch size thresholds
Size of the largest batch in KB
StorageService: tombstone thresholds
Adjust failure and warning to remove log messages
StorageService: tombstone thresholds
Adjust failure and warning to remove log messages
If you adjust these, you have bigger problems
force stop repair
Does just what it says.
bulk load (sync and async)
File path as arguments:
/some/path/${keyspace}/${table}/
Recover commit log segments
Helpful for reloading commitlogs from a backup
4. Access Control: locking down JMX
nmap -Pn -p7199 
-oG logs/cass.gnmap 54.88.0.0/14
Haha! You exposed a
command plane to the internet
nmap -Pn -p7199 
-oG logs/cass.gnmap 54.88.0.0/14
Haha! You exposed a
command plane to the internet
Shameless Plug!
Why do I need to secure JMX?
Why do I need to secure JMX?
StorageService.truncate("your_keyspace", "your_table")
Why do I need to secure JMX?
StorageService.truncate("your_keyspace", "your_table")
Why do I need to secure JMX?
StorageService.truncate("your_keyspace", "your_table")
Now with internet access!!
Why do I need to secure JMX?
StorageService.truncate("your_keyspace", "your_table")
Now with internet access!!
Works as Advertised!
Why do I need to secure JMX?
StorageService.removeNode("coworker_IPADR")
Why do I need to secure JMX?
StorageService.removeNode("coworker_IPADR")
Fun for the whole
development team!
Securing JMX
SSL setup is like node to node and client to server
http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html
Securing JMX
JMX Authentication is straightforward
and well documented
$JAVA_HOME/jre/lib/management/jmxremote.access
$JAVA_HOME/jre/lib/management/
jmxremote.password.template
http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html
Securing JMX
$JAVA_HOME/jre/lib/management/jmxremote.access
$JAVA_HOME/jre/lib/management/
jmxremote.password.template
Now you can:
nodetool -u admin -pw secret compactionstats
http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html
JMX Authentication is straightforward
and well documented
Securing JMX
$JAVA_HOME/jre/lib/management/jmxremote.access
$JAVA_HOME/jre/lib/management/
jmxremote.password.template
Now you can:
nodetool -u admin -pw secret compactionstats
Tip: -pwf option will read the password from a file
http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html
JMX Authentication is straightforward
and well documented
Securing JMX
$JAVA_HOME/jre/lib/management/jmxremote.access
$JAVA_HOME/jre/lib/management/
jmxremote.password.template
Now you can:
nodetool -u admin -pw secret compactionstats
JMX Authentication is straightforward
and well documented
RBAC for JMX Authentication and Authorization
is now supported
https://issues.apache.org/jira/browse/CASSANDRA-10091
Thanks!@zznate

Contenu connexe

Tendances

Understanding DPDK algorithmics
Understanding DPDK algorithmicsUnderstanding DPDK algorithmics
Understanding DPDK algorithmicsDenys Haryachyy
 
jemalloc 세미나
jemalloc 세미나jemalloc 세미나
jemalloc 세미나Jang Hoon
 
Lightweight Transactions at Lightning Speed
Lightweight Transactions at Lightning SpeedLightweight Transactions at Lightning Speed
Lightweight Transactions at Lightning SpeedScyllaDB
 
Enabling Vectorized Engine in Apache Spark
Enabling Vectorized Engine in Apache SparkEnabling Vectorized Engine in Apache Spark
Enabling Vectorized Engine in Apache SparkKazuaki Ishizaki
 
Low latency microservices in java QCon New York 2016
Low latency microservices in java   QCon New York 2016Low latency microservices in java   QCon New York 2016
Low latency microservices in java QCon New York 2016Peter Lawrey
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explainedconfluent
 
An Overview of Apache Cassandra
An Overview of Apache CassandraAn Overview of Apache Cassandra
An Overview of Apache CassandraDataStax
 
LinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughLinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughThomas Graf
 
Introduction to Cassandra
Introduction to CassandraIntroduction to Cassandra
Introduction to CassandraGokhan Atil
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking ExplainedThomas Graf
 
Low latency in java 8 v5
Low latency in java 8 v5Low latency in java 8 v5
Low latency in java 8 v5Peter Lawrey
 
Lessons Learned From Running 1800 Clusters (Brooke Jensen, Instaclustr) | Cas...
Lessons Learned From Running 1800 Clusters (Brooke Jensen, Instaclustr) | Cas...Lessons Learned From Running 1800 Clusters (Brooke Jensen, Instaclustr) | Cas...
Lessons Learned From Running 1800 Clusters (Brooke Jensen, Instaclustr) | Cas...DataStax
 
MySQL Shell for Database Engineers
MySQL Shell for Database EngineersMySQL Shell for Database Engineers
MySQL Shell for Database EngineersMydbops
 
Troubleshooting Cassandra (J.B. Langston, DataStax) | C* Summit 2016
Troubleshooting Cassandra (J.B. Langston, DataStax) | C* Summit 2016Troubleshooting Cassandra (J.B. Langston, DataStax) | C* Summit 2016
Troubleshooting Cassandra (J.B. Langston, DataStax) | C* Summit 2016DataStax
 
PostgreSQL Database Slides
PostgreSQL Database SlidesPostgreSQL Database Slides
PostgreSQL Database Slidesmetsarin
 
Processing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeekProcessing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeekVenkata Naga Ravi
 
MongoDB WiredTiger Internals
MongoDB WiredTiger InternalsMongoDB WiredTiger Internals
MongoDB WiredTiger InternalsNorberto Leite
 
Apache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Apache Spark Data Source V2 with Wenchen Fan and Gengliang WangApache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Apache Spark Data Source V2 with Wenchen Fan and Gengliang WangDatabricks
 

Tendances (20)

Understanding DPDK algorithmics
Understanding DPDK algorithmicsUnderstanding DPDK algorithmics
Understanding DPDK algorithmics
 
jemalloc 세미나
jemalloc 세미나jemalloc 세미나
jemalloc 세미나
 
Lightweight Transactions at Lightning Speed
Lightweight Transactions at Lightning SpeedLightweight Transactions at Lightning Speed
Lightweight Transactions at Lightning Speed
 
Enabling Vectorized Engine in Apache Spark
Enabling Vectorized Engine in Apache SparkEnabling Vectorized Engine in Apache Spark
Enabling Vectorized Engine in Apache Spark
 
Low latency microservices in java QCon New York 2016
Low latency microservices in java   QCon New York 2016Low latency microservices in java   QCon New York 2016
Low latency microservices in java QCon New York 2016
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explained
 
Galera Cluster Best Practices for DBA's and DevOps Part 1
Galera Cluster Best Practices for DBA's and DevOps Part 1Galera Cluster Best Practices for DBA's and DevOps Part 1
Galera Cluster Best Practices for DBA's and DevOps Part 1
 
An Overview of Apache Cassandra
An Overview of Apache CassandraAn Overview of Apache Cassandra
An Overview of Apache Cassandra
 
LinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughLinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking Walkthrough
 
Introduction to Cassandra
Introduction to CassandraIntroduction to Cassandra
Introduction to Cassandra
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
 
Low latency in java 8 v5
Low latency in java 8 v5Low latency in java 8 v5
Low latency in java 8 v5
 
Lessons Learned From Running 1800 Clusters (Brooke Jensen, Instaclustr) | Cas...
Lessons Learned From Running 1800 Clusters (Brooke Jensen, Instaclustr) | Cas...Lessons Learned From Running 1800 Clusters (Brooke Jensen, Instaclustr) | Cas...
Lessons Learned From Running 1800 Clusters (Brooke Jensen, Instaclustr) | Cas...
 
MySQL Shell for Database Engineers
MySQL Shell for Database EngineersMySQL Shell for Database Engineers
MySQL Shell for Database Engineers
 
Troubleshooting Cassandra (J.B. Langston, DataStax) | C* Summit 2016
Troubleshooting Cassandra (J.B. Langston, DataStax) | C* Summit 2016Troubleshooting Cassandra (J.B. Langston, DataStax) | C* Summit 2016
Troubleshooting Cassandra (J.B. Langston, DataStax) | C* Summit 2016
 
PostgreSQL Database Slides
PostgreSQL Database SlidesPostgreSQL Database Slides
PostgreSQL Database Slides
 
Apache Cassandra at Macys
Apache Cassandra at MacysApache Cassandra at Macys
Apache Cassandra at Macys
 
Processing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeekProcessing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeek
 
MongoDB WiredTiger Internals
MongoDB WiredTiger InternalsMongoDB WiredTiger Internals
MongoDB WiredTiger Internals
 
Apache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Apache Spark Data Source V2 with Wenchen Fan and Gengliang WangApache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Apache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
 

En vedette

Hardening cassandra q2_2016
Hardening cassandra q2_2016Hardening cassandra q2_2016
Hardening cassandra q2_2016zznate
 
Jolokia - JMX on Capsaicin (Devoxx 2011)
Jolokia - JMX on Capsaicin (Devoxx 2011)Jolokia - JMX on Capsaicin (Devoxx 2011)
Jolokia - JMX on Capsaicin (Devoxx 2011)roland.huss
 
The Last Pickle: Hardening Apache Cassandra for Compliance (or Paranoia).
The Last Pickle: Hardening Apache Cassandra for Compliance (or Paranoia).The Last Pickle: Hardening Apache Cassandra for Compliance (or Paranoia).
The Last Pickle: Hardening Apache Cassandra for Compliance (or Paranoia).DataStax Academy
 
Cassandra in Operation
Cassandra in OperationCassandra in Operation
Cassandra in Operationniallmilton
 
Hardening cassandra for compliance or paranoia
Hardening cassandra for compliance or paranoiaHardening cassandra for compliance or paranoia
Hardening cassandra for compliance or paranoiazznate
 
Cassandra Troubleshooting (for 2.0 and earlier)
Cassandra Troubleshooting (for 2.0 and earlier)Cassandra Troubleshooting (for 2.0 and earlier)
Cassandra Troubleshooting (for 2.0 and earlier)J.B. Langston
 
CQL performance with Apache Cassandra 3.0 (Aaron Morton, The Last Pickle) | C...
CQL performance with Apache Cassandra 3.0 (Aaron Morton, The Last Pickle) | C...CQL performance with Apache Cassandra 3.0 (Aaron Morton, The Last Pickle) | C...
CQL performance with Apache Cassandra 3.0 (Aaron Morton, The Last Pickle) | C...DataStax
 
ETL With Cassandra Streaming Bulk Loading
ETL With Cassandra Streaming Bulk LoadingETL With Cassandra Streaming Bulk Loading
ETL With Cassandra Streaming Bulk Loadingalex_araujo
 
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)Cyrille Le Clerc
 
Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...
Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...
Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...DataStax
 
Cassandra Summit 2014: Performance Tuning Cassandra in AWS
Cassandra Summit 2014: Performance Tuning Cassandra in AWSCassandra Summit 2014: Performance Tuning Cassandra in AWS
Cassandra Summit 2014: Performance Tuning Cassandra in AWSDataStax Academy
 
Wayne State University & DataStax: World's best data modeling tool for Apache...
Wayne State University & DataStax: World's best data modeling tool for Apache...Wayne State University & DataStax: World's best data modeling tool for Apache...
Wayne State University & DataStax: World's best data modeling tool for Apache...DataStax Academy
 
Bulk Loading Data into Cassandra
Bulk Loading Data into CassandraBulk Loading Data into Cassandra
Bulk Loading Data into CassandraDataStax
 
Introduction to Apache Cassandra
Introduction to Apache Cassandra Introduction to Apache Cassandra
Introduction to Apache Cassandra Knoldus Inc.
 
DataStax: Extreme Cassandra Optimization: The Sequel
DataStax: Extreme Cassandra Optimization: The SequelDataStax: Extreme Cassandra Optimization: The Sequel
DataStax: Extreme Cassandra Optimization: The SequelDataStax Academy
 
Performance tuning - A key to successful cassandra migration
Performance tuning - A key to successful cassandra migrationPerformance tuning - A key to successful cassandra migration
Performance tuning - A key to successful cassandra migrationRamkumar Nottath
 
How Cassandra Deletes Data (Alain Rodriguez, The Last Pickle) | Cassandra Sum...
How Cassandra Deletes Data (Alain Rodriguez, The Last Pickle) | Cassandra Sum...How Cassandra Deletes Data (Alain Rodriguez, The Last Pickle) | Cassandra Sum...
How Cassandra Deletes Data (Alain Rodriguez, The Last Pickle) | Cassandra Sum...DataStax
 

En vedette (20)

Hardening cassandra q2_2016
Hardening cassandra q2_2016Hardening cassandra q2_2016
Hardening cassandra q2_2016
 
Jolokia - JMX on Capsaicin (Devoxx 2011)
Jolokia - JMX on Capsaicin (Devoxx 2011)Jolokia - JMX on Capsaicin (Devoxx 2011)
Jolokia - JMX on Capsaicin (Devoxx 2011)
 
The Last Pickle: Hardening Apache Cassandra for Compliance (or Paranoia).
The Last Pickle: Hardening Apache Cassandra for Compliance (or Paranoia).The Last Pickle: Hardening Apache Cassandra for Compliance (or Paranoia).
The Last Pickle: Hardening Apache Cassandra for Compliance (or Paranoia).
 
Cassandra in Operation
Cassandra in OperationCassandra in Operation
Cassandra in Operation
 
Cassandra at teads
Cassandra at teadsCassandra at teads
Cassandra at teads
 
Hardening cassandra for compliance or paranoia
Hardening cassandra for compliance or paranoiaHardening cassandra for compliance or paranoia
Hardening cassandra for compliance or paranoia
 
Cassandra Troubleshooting (for 2.0 and earlier)
Cassandra Troubleshooting (for 2.0 and earlier)Cassandra Troubleshooting (for 2.0 and earlier)
Cassandra Troubleshooting (for 2.0 and earlier)
 
CQL performance with Apache Cassandra 3.0 (Aaron Morton, The Last Pickle) | C...
CQL performance with Apache Cassandra 3.0 (Aaron Morton, The Last Pickle) | C...CQL performance with Apache Cassandra 3.0 (Aaron Morton, The Last Pickle) | C...
CQL performance with Apache Cassandra 3.0 (Aaron Morton, The Last Pickle) | C...
 
ETL With Cassandra Streaming Bulk Loading
ETL With Cassandra Streaming Bulk LoadingETL With Cassandra Streaming Bulk Loading
ETL With Cassandra Streaming Bulk Loading
 
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
 
Cassandra Metrics
Cassandra MetricsCassandra Metrics
Cassandra Metrics
 
Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...
Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...
Building Data Pipelines with SMACK: Designing Storage Strategies for Scale an...
 
Cassandra Summit 2014: Performance Tuning Cassandra in AWS
Cassandra Summit 2014: Performance Tuning Cassandra in AWSCassandra Summit 2014: Performance Tuning Cassandra in AWS
Cassandra Summit 2014: Performance Tuning Cassandra in AWS
 
Wayne State University & DataStax: World's best data modeling tool for Apache...
Wayne State University & DataStax: World's best data modeling tool for Apache...Wayne State University & DataStax: World's best data modeling tool for Apache...
Wayne State University & DataStax: World's best data modeling tool for Apache...
 
Cassandra 3.0
Cassandra 3.0Cassandra 3.0
Cassandra 3.0
 
Bulk Loading Data into Cassandra
Bulk Loading Data into CassandraBulk Loading Data into Cassandra
Bulk Loading Data into Cassandra
 
Introduction to Apache Cassandra
Introduction to Apache Cassandra Introduction to Apache Cassandra
Introduction to Apache Cassandra
 
DataStax: Extreme Cassandra Optimization: The Sequel
DataStax: Extreme Cassandra Optimization: The SequelDataStax: Extreme Cassandra Optimization: The Sequel
DataStax: Extreme Cassandra Optimization: The Sequel
 
Performance tuning - A key to successful cassandra migration
Performance tuning - A key to successful cassandra migrationPerformance tuning - A key to successful cassandra migration
Performance tuning - A key to successful cassandra migration
 
How Cassandra Deletes Data (Alain Rodriguez, The Last Pickle) | Cassandra Sum...
How Cassandra Deletes Data (Alain Rodriguez, The Last Pickle) | Cassandra Sum...How Cassandra Deletes Data (Alain Rodriguez, The Last Pickle) | Cassandra Sum...
How Cassandra Deletes Data (Alain Rodriguez, The Last Pickle) | Cassandra Sum...
 

Similaire à Advanced Apache Cassandra Operations with JMX

Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase HBaseCon
 
Monitoreo de MySQL y PostgreSQL con SQL
Monitoreo de MySQL y PostgreSQL con SQLMonitoreo de MySQL y PostgreSQL con SQL
Monitoreo de MySQL y PostgreSQL con SQLEmanuel Calvo
 
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...Altinity Ltd
 
Adventures in RDS Load Testing
Adventures in RDS Load TestingAdventures in RDS Load Testing
Adventures in RDS Load TestingMike Harnish
 
Servers and Processes: Behavior and Analysis
Servers and Processes: Behavior and AnalysisServers and Processes: Behavior and Analysis
Servers and Processes: Behavior and Analysisdreamwidth
 
Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase HBaseCon
 
Neo4j after 1 year in production
Neo4j after 1 year in productionNeo4j after 1 year in production
Neo4j after 1 year in productionAndrew Nikishaev
 
Riak add presentation
Riak add presentationRiak add presentation
Riak add presentationIlya Bogunov
 
(DAT402) Amazon RDS PostgreSQL:Lessons Learned & New Features
(DAT402) Amazon RDS PostgreSQL:Lessons Learned & New Features(DAT402) Amazon RDS PostgreSQL:Lessons Learned & New Features
(DAT402) Amazon RDS PostgreSQL:Lessons Learned & New FeaturesAmazon Web Services
 
Non-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.jsNon-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.jsMarcus Frödin
 
Fundamentals of Physical Memory Analysis
Fundamentals of Physical Memory AnalysisFundamentals of Physical Memory Analysis
Fundamentals of Physical Memory AnalysisDmitry Vostokov
 
Become a Java GC Hero - All Day Devops
Become a Java GC Hero - All Day DevopsBecome a Java GC Hero - All Day Devops
Become a Java GC Hero - All Day DevopsTier1app
 
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation CenterDUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation CenterAndrey Kudryavtsev
 
Fundamentals of Complete Crash and Hang Memory Dump Analysis (Revision 2)
Fundamentals of Complete Crash and Hang Memory Dump Analysis (Revision 2)Fundamentals of Complete Crash and Hang Memory Dump Analysis (Revision 2)
Fundamentals of Complete Crash and Hang Memory Dump Analysis (Revision 2)Dmitry Vostokov
 
Column store indexes and batch processing mode (nx power lite)
Column store indexes and batch processing mode (nx power lite)Column store indexes and batch processing mode (nx power lite)
Column store indexes and batch processing mode (nx power lite)Chris Adkin
 
Drupal MySQL Cluster
Drupal MySQL ClusterDrupal MySQL Cluster
Drupal MySQL ClusterKris Buytaert
 

Similaire à Advanced Apache Cassandra Operations with JMX (20)

Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase
 
Cassandra
CassandraCassandra
Cassandra
 
Monitoreo de MySQL y PostgreSQL con SQL
Monitoreo de MySQL y PostgreSQL con SQLMonitoreo de MySQL y PostgreSQL con SQL
Monitoreo de MySQL y PostgreSQL con SQL
 
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...
 
Adventures in RDS Load Testing
Adventures in RDS Load TestingAdventures in RDS Load Testing
Adventures in RDS Load Testing
 
Servers and Processes: Behavior and Analysis
Servers and Processes: Behavior and AnalysisServers and Processes: Behavior and Analysis
Servers and Processes: Behavior and Analysis
 
Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase
 
Deep Dive on Amazon EC2
Deep Dive on Amazon EC2Deep Dive on Amazon EC2
Deep Dive on Amazon EC2
 
Neo4j after 1 year in production
Neo4j after 1 year in productionNeo4j after 1 year in production
Neo4j after 1 year in production
 
Riak add presentation
Riak add presentationRiak add presentation
Riak add presentation
 
(DAT402) Amazon RDS PostgreSQL:Lessons Learned & New Features
(DAT402) Amazon RDS PostgreSQL:Lessons Learned & New Features(DAT402) Amazon RDS PostgreSQL:Lessons Learned & New Features
(DAT402) Amazon RDS PostgreSQL:Lessons Learned & New Features
 
Non-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.jsNon-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.js
 
Fundamentals of Physical Memory Analysis
Fundamentals of Physical Memory AnalysisFundamentals of Physical Memory Analysis
Fundamentals of Physical Memory Analysis
 
Become a Java GC Hero - All Day Devops
Become a Java GC Hero - All Day DevopsBecome a Java GC Hero - All Day Devops
Become a Java GC Hero - All Day Devops
 
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation CenterDUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
DUG'20: 12 - DAOS in Lenovo’s HPC Innovation Center
 
Understanding DPDK
Understanding DPDKUnderstanding DPDK
Understanding DPDK
 
Fundamentals of Complete Crash and Hang Memory Dump Analysis (Revision 2)
Fundamentals of Complete Crash and Hang Memory Dump Analysis (Revision 2)Fundamentals of Complete Crash and Hang Memory Dump Analysis (Revision 2)
Fundamentals of Complete Crash and Hang Memory Dump Analysis (Revision 2)
 
Column store indexes and batch processing mode (nx power lite)
Column store indexes and batch processing mode (nx power lite)Column store indexes and batch processing mode (nx power lite)
Column store indexes and batch processing mode (nx power lite)
 
Drupal MySQL Cluster
Drupal MySQL ClusterDrupal MySQL Cluster
Drupal MySQL Cluster
 
AWR Sample Report
AWR Sample ReportAWR Sample Report
AWR Sample Report
 

Plus de zznate

Seattle C* Meetup: Hardening cassandra for compliance or paranoia
Seattle C* Meetup: Hardening cassandra for compliance or paranoiaSeattle C* Meetup: Hardening cassandra for compliance or paranoia
Seattle C* Meetup: Hardening cassandra for compliance or paranoiazznate
 
Software Development with Apache Cassandra
Software Development with Apache CassandraSoftware Development with Apache Cassandra
Software Development with Apache Cassandrazznate
 
Successful Software Development with Apache Cassandra
Successful Software Development with Apache CassandraSuccessful Software Development with Apache Cassandra
Successful Software Development with Apache Cassandrazznate
 
Stampede con 2014 cassandra in the real world
Stampede con 2014   cassandra in the real worldStampede con 2014   cassandra in the real world
Stampede con 2014 cassandra in the real worldzznate
 
An Introduction to the Vert.x framework
An Introduction to the Vert.x frameworkAn Introduction to the Vert.x framework
An Introduction to the Vert.x frameworkzznate
 
Intravert atx meetup_condensed
Intravert atx meetup_condensedIntravert atx meetup_condensed
Intravert atx meetup_condensedzznate
 
Apachecon cassandra transport
Apachecon cassandra transportApachecon cassandra transport
Apachecon cassandra transportzznate
 
Oscon 2012 tdd_cassandra
Oscon 2012 tdd_cassandraOscon 2012 tdd_cassandra
Oscon 2012 tdd_cassandrazznate
 
Strata west 2012_java_cassandra
Strata west 2012_java_cassandraStrata west 2012_java_cassandra
Strata west 2012_java_cassandrazznate
 
Nyc summit intro_to_cassandra
Nyc summit intro_to_cassandraNyc summit intro_to_cassandra
Nyc summit intro_to_cassandrazznate
 
Meetup cassandra sfo_jdbc
Meetup cassandra sfo_jdbcMeetup cassandra sfo_jdbc
Meetup cassandra sfo_jdbczznate
 
Meetup cassandra for_java_cql
Meetup cassandra for_java_cqlMeetup cassandra for_java_cql
Meetup cassandra for_java_cqlzznate
 
Introduciton to Apache Cassandra for Java Developers (JavaOne)
Introduciton to Apache Cassandra for Java Developers (JavaOne)Introduciton to Apache Cassandra for Java Developers (JavaOne)
Introduciton to Apache Cassandra for Java Developers (JavaOne)zznate
 
Introduction to apache_cassandra_for_developers-lhg
Introduction to apache_cassandra_for_developers-lhgIntroduction to apache_cassandra_for_developers-lhg
Introduction to apache_cassandra_for_developers-lhgzznate
 
Introduction to apache_cassandra_for_develope
Introduction to apache_cassandra_for_developeIntroduction to apache_cassandra_for_develope
Introduction to apache_cassandra_for_developezznate
 
Hector v2: The Second Version of the Popular High-Level Java Client for Apach...
Hector v2: The Second Version of the Popular High-Level Java Client for Apach...Hector v2: The Second Version of the Popular High-Level Java Client for Apach...
Hector v2: The Second Version of the Popular High-Level Java Client for Apach...zznate
 

Plus de zznate (16)

Seattle C* Meetup: Hardening cassandra for compliance or paranoia
Seattle C* Meetup: Hardening cassandra for compliance or paranoiaSeattle C* Meetup: Hardening cassandra for compliance or paranoia
Seattle C* Meetup: Hardening cassandra for compliance or paranoia
 
Software Development with Apache Cassandra
Software Development with Apache CassandraSoftware Development with Apache Cassandra
Software Development with Apache Cassandra
 
Successful Software Development with Apache Cassandra
Successful Software Development with Apache CassandraSuccessful Software Development with Apache Cassandra
Successful Software Development with Apache Cassandra
 
Stampede con 2014 cassandra in the real world
Stampede con 2014   cassandra in the real worldStampede con 2014   cassandra in the real world
Stampede con 2014 cassandra in the real world
 
An Introduction to the Vert.x framework
An Introduction to the Vert.x frameworkAn Introduction to the Vert.x framework
An Introduction to the Vert.x framework
 
Intravert atx meetup_condensed
Intravert atx meetup_condensedIntravert atx meetup_condensed
Intravert atx meetup_condensed
 
Apachecon cassandra transport
Apachecon cassandra transportApachecon cassandra transport
Apachecon cassandra transport
 
Oscon 2012 tdd_cassandra
Oscon 2012 tdd_cassandraOscon 2012 tdd_cassandra
Oscon 2012 tdd_cassandra
 
Strata west 2012_java_cassandra
Strata west 2012_java_cassandraStrata west 2012_java_cassandra
Strata west 2012_java_cassandra
 
Nyc summit intro_to_cassandra
Nyc summit intro_to_cassandraNyc summit intro_to_cassandra
Nyc summit intro_to_cassandra
 
Meetup cassandra sfo_jdbc
Meetup cassandra sfo_jdbcMeetup cassandra sfo_jdbc
Meetup cassandra sfo_jdbc
 
Meetup cassandra for_java_cql
Meetup cassandra for_java_cqlMeetup cassandra for_java_cql
Meetup cassandra for_java_cql
 
Introduciton to Apache Cassandra for Java Developers (JavaOne)
Introduciton to Apache Cassandra for Java Developers (JavaOne)Introduciton to Apache Cassandra for Java Developers (JavaOne)
Introduciton to Apache Cassandra for Java Developers (JavaOne)
 
Introduction to apache_cassandra_for_developers-lhg
Introduction to apache_cassandra_for_developers-lhgIntroduction to apache_cassandra_for_developers-lhg
Introduction to apache_cassandra_for_developers-lhg
 
Introduction to apache_cassandra_for_develope
Introduction to apache_cassandra_for_developeIntroduction to apache_cassandra_for_develope
Introduction to apache_cassandra_for_develope
 
Hector v2: The Second Version of the Popular High-Level Java Client for Apach...
Hector v2: The Second Version of the Popular High-Level Java Client for Apach...Hector v2: The Second Version of the Popular High-Level Java Client for Apach...
Hector v2: The Second Version of the Popular High-Level Java Client for Apach...
 

Dernier

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Dernier (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

Advanced Apache Cassandra Operations with JMX

  • 1. JMX and Cassandra Understanding tooling for advanced operations
  • 2. Hi, I'm Nate. @zznate https://www.linkedin.com/in/zznate http://www.slideshare.net/zznate/ Co-Founder, CTO The Last Pickle Apache Cassandra PMC member User since 2009 (v0.4) Austin, Texas Wellington, NZ
  • 3. TLP: not just "Aaron and Nate"
  • 4. Lots of information in the next 30 minutes
  • 5. 1. Tools 2. Visibility and exploration 3. Operations and invocation 4. Access controls JMX and Cassandra
  • 6. 1. Summary of the tools
  • 8. Nodetool: the cruise line of cluster administration
  • 9. output of nodetool help (87 commands) usage: nodetool [(-u <username> | --username <username>)] [(-pw <password> | --password <password>)] [(-h <host> | --host <host>)] [(-p <port> | --port <port>)] [(-pwf <passwordFilePath> | --password-file <passwordFilePath>)] <command> [<args>] The most commonly used nodetool commands are: assassinate Forcefully remove a dead node without re-replicating any data. Use as a last resort if you cannot removenode bootstrap Monitor/manage node's bootstrap process cleanup Triggers the immediate cleanup of keys no longer belonging to a node. By default, clean all keyspaces clearsnapshot Remove the snapshot with the given name from the given keyspaces. If no snapshotName is specified we will remove all snapshots compact Force a (major) compaction on one or more tables compactionhistory Print history of compaction compactionstats Print statistics on compactions decommission Decommission the *node I am connecting to* describecluster Print the name, snitch, partitioner and schema version of a cluster describering Shows the token ranges info of a given keyspace disableautocompaction Disable autocompaction for the given keyspace and table disablebackup Disable incremental backup disablebinary Disable native transport (binary protocol) disablegossip Disable gossip (effectively marking the node down) disablehandoff Disable storing hinted handoffs disablehintsfordc Disable hints for a data center disablethrift Disable thrift server drain Drain the node (stop accepting writes and flush all tables) enableautocompaction Enable autocompaction for the given keyspace and table enablebackup Enable incremental backup enablebinary Reenable native transport (binary protocol) enablegossip Reenable gossip enablehandoff Reenable future hints storing on the current node enablehintsfordc Enable hints for a data center that was previsouly disabled enablethrift Reenable thrift server failuredetector Shows the failure detector information for the cluster flush Flush one or more tables gcstats Print GC Statistics getcompactionthreshold Print min and max compaction thresholds for a given table getcompactionthroughput Print the MB/s throughput cap for compaction in the system getendpoints Print the end points that owns the key getinterdcstreamthroughput Print the Mb/s throughput cap for inter-datacenter streaming in the system getlogginglevels Get the runtime logging levels getsstables Print the sstable filenames that own the key getstreamthroughput Print the Mb/s throughput cap for streaming in the system gettraceprobability Print the current trace probability value gossipinfo Shows the gossip information for the cluster help Display help information info Print node information (uptime, load, ...) invalidatecountercache Invalidate the counter cache invalidatekeycache Invalidate the key cache invalidaterowcache Invalidate the row cache join Join the ring listsnapshots Lists all the snapshots along with the size on disk and true size. move Move node on the token ring to a new token netstats Print network information on provided host (connecting node by default) pausehandoff Pause hints delivery process proxyhistograms Print statistic histograms for network operations rangekeysample Shows the sampled keys held across all keyspaces rebuild Rebuild data by streaming from other nodes (similarly to bootstrap) rebuild_index A full rebuild of native secondary indexes for a given table refresh Load newly placed SSTables to the system without restart refreshsizeestimates Refresh system.size_estimates reloadtriggers Reload trigger classes removenode Show status of current node removal, force completion of pending removal or remove provided ID repair Repair one or more tables replaybatchlog Kick off batchlog replay and wait for finish resetlocalschema Reset node's local schema and resync resumehandoff Resume hints delivery process ring Print information about the token ring scrub Scrub (rebuild sstables for) one or more tables setcachecapacity Set global key, row, and counter cache capacities (in MB units) setcachekeystosave Set number of keys saved by each cache for faster post-restart warmup. 0 to disable setcompactionthreshold Set min and max compaction thresholds for a given table setcompactionthroughput Set the MB/s throughput cap for compaction in the system, or 0 to disable throttling sethintedhandoffthrottlekb Set hinted handoff throttle in kb per second, per delivery thread. setinterdcstreamthroughput Set the Mb/s throughput cap for inter-datacenter streaming in the system, or 0 to disable throttling setlogginglevel Set the log level threshold for a given class. If both class and level are empty/null, it will reset to the initial configuration setstreamthroughput Set the Mb/s throughput cap for streaming in the system, or 0 to disable throttling settraceprobability Sets the probability for tracing any given request to value. 0 disables, 1 enables for all requests, 0 is the default snapshot Take a snapshot of specified keyspaces or a snapshot of the specified table status Print cluster information (state, load, IDs, ...) statusbackup Status of incremental backup statusbinary Status of native transport (binary protocol) statusgossip Status of gossip statushandoff Status of storing future hints on the current node statusthrift Status of thrift server stop Stop compaction stopdaemon Stop cassandra daemon tablehistograms Print statistic histograms for a given table tablestats Print statistics on tables toppartitions Sample and print the most active partitions for a given column family tpstats Print usage statistics of thread pools truncatehints Truncate all hints on the local node, or truncate hints for the endpoint(s) specified. upgradesstables Rewrite sstables (for the requested tables) that are not on the current version (thus upgrading them to said current version) verify Verify (check data checksum for) one or more tables version Print cassandra version See 'nodetool help <command>' for more information on a specific command.
  • 10. nodetool commands: info ID : fed6dd09-667c-4cc5-b66a-85a1cbce1b58 Gossip active : true Thrift active : false Native Transport active: true Load : 219.97 KB Generation No : 1473125362 Uptime (seconds) : 28802 Heap Memory (MB) : 86.96 / 495.00 Off Heap Memory (MB) : 0.00 Data Center : datacenter1 Rack : rack1 Exceptions : 0 Key Cache : entries 27, size 2.15 KB, capacity 24 MB, 274 hits, 313 requests, 0.875 recent hit rate, 14400 save period in seconds Row Cache : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds Counter Cache : entries 0, size 0 bytes, capacity 12 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds Token : -9223372036854775808
  • 11. nodetool commands: info ID : fed6dd09-667c-4cc5-b66a-85a1cbce1b58 Gossip active : true Thrift active : false Native Transport active: true Load : 219.97 KB Generation No : 1473125362 Uptime (seconds) : 28802 Heap Memory (MB) : 86.96 / 495.00 Off Heap Memory (MB) : 0.00 Data Center : datacenter1 Rack : rack1 Exceptions : 0 Key Cache : entries 27, size 2.15 KB, capacity 24 MB, 274 hits, 313 requests, 0.875 recent hit rate, 14400 save period in seconds Row Cache : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds Counter Cache : entries 0, size 0 bytes, capacity 12 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds Token : -9223372036854775808
  • 12. nodetool commands: info ID : fed6dd09-667c-4cc5-b66a-85a1cbce1b58 Gossip active : true Thrift active : false Native Transport active: true Load : 219.97 KB Generation No : 1473125362 Uptime (seconds) : 28802 Heap Memory (MB) : 86.96 / 495.00 Off Heap Memory (MB) : 0.00 Data Center : datacenter1 Rack : rack1 Exceptions : 0 Key Cache : entries 27, size 2.15 KB, capacity 24 MB, 274 hits, 313 requests, 0.875 recent hit rate, 14400 save period Row Cache : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds Counter Cache : entries 0, size 0 bytes, capacity 12 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds Token : -9223372036854775808
  • 13. nodetool commands: info ID : fed6dd09-667c-4cc5-b66a-85a1cbce1b58 Gossip active : true Thrift active : false Native Transport active: true Load : 219.97 KB Generation No : 1473125362 Uptime (seconds) : 28802 Heap Memory (MB) : 86.96 / 495.00 Off Heap Memory (MB) : 0.00 Data Center : datacenter1 Rack : rack1 Exceptions : 0 Key Cache : entries 27, size 2.15 KB, capacity 24 MB, 274 hits, 313 requests, 0.875 recent hit rate, 14400 save period Row Cache : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds Counter Cache : entries 0, size 0 bytes, capacity 12 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds Token : -9223372036854775808 tip: nodetool setcachecapacity <key> <row> <counter>
  • 14. $ nodetool compactionstats -H pending tasks: 2101 id type keyspace table completed total progress d14fc600-6e3f-11e6-a01c-8bcdc0e93c44 Compaction ads ad_events 742.58 MB 4.1 TB 0.02% Active compaction remaining time : 37h18m47s nodetool commands: compactionstats
  • 15. $ nodetool compactionstats -H pending tasks: 2101 id type keyspace table completed total progress d14fc600-6e3f-11e6-a01c-8bcdc0e93c44 Compaction ads ad_events 742.58 MB 4.1 TB 0.02% Active compaction remaining time : 37h18m47s nodetool commands: compactionstats
  • 16. nodetool commands: compactionstats $ nodetool compactionstats -H pending tasks: 2101 id type keyspace table completed total progress d14fc600-6e3f-11e6-a01c-8bcdc0e93c44 Compaction ads ad_events 742.58 MB 4.1 TB 0.02% Active compaction remaining time : 37h18m47s
  • 17. nodetool commands: tablestats Keyspace: jmx_adventure Read Count: 19 Read Latency: 0.3552105263157895 ms. Write Count: 3 Write Latency: 0.17766666666666667 ms. Pending Flushes: 0 Table: account_event SSTable count: 1 Space used (live): 5326 Space used (total): 5326 Space used by snapshots (total): 0 Off heap memory used (total): 51 SSTable Compression Ratio: 0.6517241379310345 Number of keys (estimate): 3 Memtable cell count: 0 Memtable data size: 0 Memtable off heap memory used: 0 Memtable switch count: 1 Local read count: 19 Local read latency: 0.386 ms Local write count: 3 Local write latency: 0.207 ms Pending flushes: 0 Bloom filter false positives: 0 Bloom filter false ratio: 0.00000 Bloom filter space used: 16 Bloom filter off heap memory used: 8 Index summary off heap memory used: 27 Compression metadata off heap memory used: 16 Compacted partition minimum bytes: 51 Compacted partition maximum bytes: 149 Compacted partition mean bytes: 104 Average live cells per slice (last five minutes): 2.263157894736842 Maximum live cells per slice (last five minutes): 3 Average tombstones per slice (last five minutes): 1.0 Maximum tombstones per slice (last five minutes): 1
  • 18. nodetool commands: tablestats Keyspace: jmx_adventure Read Count: 19 Read Latency: 0.3552105263157895 ms. Write Count: 3 Write Latency: 0.17766666666666667 ms. Pending Flushes: 0 Table: account_event SSTable count: 1 Space used (live): 5326 Space used (total): 5326 Space used by snapshots (total): 0 Off heap memory used (total): 51 SSTable Compression Ratio: 0.6517241379310345 Number of keys (estimate): 3 Memtable cell count: 0 Memtable data size: 0 Memtable off heap memory used: 0 Memtable switch count: 1 Local read count: 19 Local read latency: 0.386 ms Local write count: 3 Local write latency: 0.207 ms Pending flushes: 0 Bloom filter false positives: 0 Bloom filter false ratio: 0.00000 Bloom filter space used: 16 Bloom filter off heap memory used: 8 Index summary off heap memory used: 27 Compression metadata off heap memory used: 16 Compacted partition minimum bytes: 51 Compacted partition maximum bytes: 149 Compacted partition mean bytes: 104 Average live cells per slice (last five minutes): 2.263157894736842 Maximum live cells per slice (last five minutes): 3 Average tombstones per slice (last five minutes): 1.0 Maximum tombstones per slice (last five minutes): 1 tombstones per read partition size read and write latency memtable usage index summary usage
  • 19. nodetool commands: tablestats Keyspace: jmx_adventure Read Count: 19 Read Latency: 0.3552105263157895 ms. Write Count: 3 Write Latency: 0.17766666666666667 ms. Pending Flushes: 0 Table: account_event SSTable count: 1 Space used (live): 5326 Space used (total): 5326 Space used by snapshots (total): 0 Off heap memory used (total): 51 SSTable Compression Ratio: 0.6517241379310345 Number of keys (estimate): 3 Memtable cell count: 2 Memtable data size: 122 Memtable off heap memory used: 96 Memtable switch count: 1 Local read count: 19 Local read latency: 0.386 ms Local write count: 3 Local write latency: 0.207 ms Pending flushes: 0 Bloom filter false positives: 0 Bloom filter false ratio: 0.00000 Bloom filter space used: 16 Bloom filter off heap memory used: 8 Index summary off heap memory used: 27 Compression metadata off heap memory used: 16 Compacted partition minimum bytes: 51 Compacted partition maximum bytes: 149 Compacted partition mean bytes: 104 Average live cells per slice (last five minutes): 2.263157894736842 Maximum live cells per slice (last five minutes): 3 Average tombstones per slice (last five minutes): 1.0 Maximum tombstones per slice (last five minutes): 1 tombstones per read partition size read and write latency memtable usage index summary usage
  • 20. nodetool commands: tablestats Keyspace: jmx_adventure Read Count: 19 Read Latency: 0.3552105263157895 ms. Write Count: 3 Write Latency: 0.17766666666666667 ms. Pending Flushes: 0 Table: account_event SSTable count: 1 Space used (live): 5326 Space used (total): 5326 Space used by snapshots (total): 0 Off heap memory used (total): 51 SSTable Compression Ratio: 0.6517241379310345 Number of keys (estimate): 3 Memtable cell count: 0 Memtable data size: 0 Memtable off heap memory used: 0 Memtable switch count: 1 Local read count: 19 Local read latency: 0.386 ms Local write count: 3 Local write latency: 0.207 ms Pending flushes: 0 Bloom filter false positives: 0 Bloom filter false ratio: 0.00000 Bloom filter space used: 16 Bloom filter off heap memory used: 8 Index summary off heap memory used: 27 Compression metadata off heap memory used: 16 Compacted partition minimum bytes: 51 Compacted partition maximum bytes: 149 Compacted partition mean bytes: 104 Average live cells per slice (last five minutes): 2.263157894736842 Maximum live cells per slice (last five minutes): 3 Average tombstones per slice (last five minutes): 1.0 Maximum tombstones per slice (last five minutes): 1 tombstones per read partition size read and write latency memtable usage index summary usage
  • 21. nodetool commands: tablestats Keyspace: jmx_adventure Read Count: 19 Read Latency: 0.3552105263157895 ms. Write Count: 3 Write Latency: 0.17766666666666667 ms. Pending Flushes: 0 Table: account_event SSTable count: 1 Space used (live): 5326 Space used (total): 5326 Space used by snapshots (total): 0 Off heap memory used (total): 51 SSTable Compression Ratio: 0.6517241379310345 Number of keys (estimate): 3 Memtable cell count: 0 Memtable data size: 0 Memtable off heap memory used: 0 Memtable switch count: 1 Local read count: 19 Local read latency: 0.386 ms Local write count: 3 Local write latency: 0.207 ms Pending flushes: 0 Bloom filter false positives: 0 Bloom filter false ratio: 0.00000 Bloom filter space used: 16 Bloom filter off heap memory used: 8 Index summary off heap memory used: 27 Compression metadata off heap memory used: 16 Compacted partition minimum bytes: 51 Compacted partition maximum bytes: 149 Compacted partition mean bytes: 104 Average live cells per slice (last five minutes): 2.263157894736842 Maximum live cells per slice (last five minutes): 3 Average tombstones per slice (last five minutes): 1.0 Maximum tombstones per slice (last five minutes): 1 tombstones per read partition size read and write latency memtable usage index summary usage
  • 22. nodetool commands: tablestats Keyspace: jmx_adventure Read Count: 19 Read Latency: 0.3552105263157895 ms. Write Count: 3 Write Latency: 0.17766666666666667 ms. Pending Flushes: 0 Table: account_event SSTable count: 1 Space used (live): 5326 Space used (total): 5326 Space used by snapshots (total): 0 Off heap memory used (total): 51 SSTable Compression Ratio: 0.6517241379310345 Number of keys (estimate): 3 Memtable cell count: 0 Memtable data size: 0 Memtable off heap memory used: 0 Memtable switch count: 1 Local read count: 19 Local read latency: 0.386 ms Local write count: 3 Local write latency: 0.207 ms Pending flushes: 0 Bloom filter false positives: 0 Bloom filter false ratio: 0.00000 Bloom filter space used: 16 Bloom filter off heap memory used: 8 Index summary off heap memory used: 27 Compression metadata off heap memory used: 16 Compacted partition minimum bytes: 51 Compacted partition maximum bytes: 149 Compacted partition mean bytes: 104 Average live cells per slice (last five minutes): 2.263 Maximum live cells per slice (last five minutes): 3 Average tombstones per slice (last five minutes): 1.0 Maximum tombstones per slice (last five minutes): 1 tombstones per read partition size read and write latency memtable usage index summary usage
  • 23. nodetool commands: tablehistograms $ nodetool tablehistograms jmx_adventure account_event jmx_adventure/account_event histograms Percentile SSTables Write Latency Read Latency Partition Size Cell Count (micros) (micros) (bytes) 50% 1.00 263.21 315.85 103 1 75% 2.00 315.85 545.79 149 1 95% 2.00 315.85 1131.75 149 1 98% 2.00 315.85 1131.75 149 1 99% 2.00 315.85 1131.75 149 1 Min 1.00 35.43 152.32 51 0 Max 2.00 315.85 1131.75 149 1
  • 24. nodetool commands: proxyhistograms $ nodetool proxyhistograms proxy histograms Percentile Read Latency Write Latency Range Latency (micros) (micros) (micros) 50% 454.83 1131.75 1629.72 75% 785.94 12108.97 8409.01 95% 4866.32 12108.97 20924.30 98% 129557.75 12108.97 20924.30 99% 129557.75 12108.97 20924.30 Min 219.34 315.85 943.13 Max 129557.75 12108.97 20924.30
  • 25. JMX on the HTTP mx4j
  • 26. JMX on the HTTP mx4jbroken in 3.x
  • 27. JMX on the HTTP when it does work, it looks like this (2.2.7 and below):
  • 28. JMX on the HTTP when it does work, it looks like this: ewww gross.
  • 29. JMX on the HTTP (with JSON!) via Jolokia https://jolokia.org/
  • 30. JMX on the HTTP (with JSON!) via Jolokia https://jolokia.org/ JSON: it's ok.
  • 31. JMX on the HTTP (with JSON!) via Jolokia http://search.maven.org/remotecontent?filepath=org/jolokia/jolokia-jvm/1.3.4/jolokia-jvm-1.3.4- agent.jar 1. download: jolokia-jvm-1.3.4-agent.jar 2. place in: $CASSANDRA_HOME/lib 3. in cassandra-env.sh, add: JVM_OPTS="$JVM_OPTS - javaagent:$CASSANDRA_HOME/lib/jolokia- jvm-1.3.4-agent.jar"
  • 32. JMX on the command line jmxsh jmxterm http://wiki.cyclopsgroup.org/jmxterm/download.html https://github.com/davr/jmxsh
  • 33. jmxsh jmxterm JMX on the command line http://wiki.cyclopsgroup.org/jmxterm/download.html https://github.com/davr/jmxsh Almost identical!
  • 34. jmxsh jmxterm JMX on the command line http://wiki.cyclopsgroup.org/jmxterm/download.html https://github.com/davr/jmxsh Almost identical! Not updated in years!
  • 35. JMX on the command line $ java -jar $HOME/services/jmxterm-1.0-alpha-4-uber.jar -l 127.0.0.1:7200 Welcome to JMX terminal. Type "help" for available commands. $>bean org.apache.cassandra.net:type=MessagingService #bean is set to org.apache.cassandra.net:type=MessagingService $>get TimeoutsPerHost #mbean = org.apache.cassandra.net:type=MessagingService: TimeoutsPerHost = { 127.0.0.1 = 0; 127.0.0.3 = 0; };
  • 36. JMX on the command line $ java -jar $HOME/services/jmxterm-1.0-alpha-4-uber.jar -l 127.0.0.1:7200 Welcome to JMX terminal. Type "help" for available commands. $>bean org.apache.cassandra.net:type=MessagingService #bean is set to org.apache.cassandra.net:type=MessagingService $>get TimeoutsPerHost #mbean = org.apache.cassandra.net:type=MessagingService: TimeoutsPerHost = { 127.0.0.1 = 0; 127.0.0.3 = 0; };
  • 37. JMX on the command line $ java -jar $HOME/services/jmxterm-1.0-alpha-4-uber.jar -l 127.0.0.1:7200 Welcome to JMX terminal. Type "help" for available commands. $>bean org.apache.cassandra.net:type=MessagingService #bean is set to org.apache.cassandra.net:type=MessagingService $>get TimeoutsPerHost #mbean = org.apache.cassandra.net:type=MessagingService: TimeoutsPerHost = { 127.0.0.1 = 0; 127.0.0.3 = 0; };
  • 38. JMX on the command line $ java -jar $HOME/services/jmxterm-1.0-alpha-4-uber.jar -l 127.0.0.1:7200 Welcome to JMX terminal. Type "help" for available commands. $>bean org.apache.cassandra.net:type=MessagingService #bean is set to org.apache.cassandra.net:type=MessagingService $>get TimeoutsPerHost #mbean = org.apache.cassandra.net:type=MessagingService: TimeoutsPerHost = { 127.0.0.1 = 0; 127.0.0.3 = 0; };
  • 39. JMX on the command line $ echo "set -b org.apache.cassandra.db:type=CompactionManager MaximumCompactorThreads 6" | java -jar jmxterm-1.0-alpha-4-uber.jar -l 172.17.41.232:7199 && echo "set -b org.apache.cassandra.db:type=CompactionManager CoreCompactorThreads 6" | java -jar jmxterm-1.0-alpha-4-uber.jar -l 172.17.41.232:7199 setting compaction threads in one shot
  • 40. JMX on the command line $ echo "set -b org.apache.cassandra.db:type=CompactionManager MaximumCompactorThreads 6" | java -jar jmxterm-1.0-alpha-4-uber.jar -l 172.17.41.232:7199 && echo "set -b org.apache.cassandra.db:type=CompactionManager CoreCompactorThreads 6" | java -jar jmxterm-1.0-alpha-4-uber.jar -l 172.17.41.232:7199 just echo and 'pipe' setting compaction threads in one shot
  • 41. $>bean org.apache.cassandra.db:type=BatchlogManager #bean is set to org.apache.cassandra.db:type=BatchlogManager $>info #mbean = org.apache.cassandra.db:type=BatchlogManager #class name = org.apache.cassandra.batchlog.BatchlogManager # attributes %0 - TotalBatchesReplayed (long, r) # operations %0 - int countAllBatches() %1 - void forceBatchlogReplay() #there's no notifications $>get TotalBatchesReplayed #mbean = org.apache.cassandra.db:type=BatchlogManager: TotalBatchesReplayed = 0; $>run countAllBatches #calling operation countAllBatches of mbean org.apache.cassandra.db:type=BatchlogManager #operation returns: 0 JMX on the command line: general syntax
  • 42. $>bean org.apache.cassandra.db:type=BatchlogManager #bean is set to org.apache.cassandra.db:type=BatchlogManager $>info #mbean = org.apache.cassandra.db:type=BatchlogManager #class name = org.apache.cassandra.batchlog.BatchlogManager # attributes %0 - TotalBatchesReplayed (long, r) # operations %0 - int countAllBatches() %1 - void forceBatchlogReplay() #there's no notifications $>get TotalBatchesReplayed #mbean = org.apache.cassandra.db:type=BatchlogManager: TotalBatchesReplayed = 0; $>run countAllBatches #calling operation countAllBatches of mbean org.apache.cassandra.db:type=BatchlogManager #operation returns: 0 JMX on the command line: general syntax Set the bean
  • 43. $>bean org.apache.cassandra.db:type=BatchlogManager #bean is set to org.apache.cassandra.db:type=BatchlogManager $>info #mbean = org.apache.cassandra.db:type=BatchlogManager #class name = org.apache.cassandra.batchlog.BatchlogManager # attributes %0 - TotalBatchesReplayed (long, r) # operations %0 - int countAllBatches() %1 - void forceBatchlogReplay() #there's no notifications $>get TotalBatchesReplayed #mbean = org.apache.cassandra.db:type=BatchlogManager: TotalBatchesReplayed = 0; $>run countAllBatches #calling operation countAllBatches of mbean org.apache.cassandra.db:type=BatchlogManager #operation returns: 0 'info' for what is available JMX on the command line: general syntax
  • 44. $>bean org.apache.cassandra.db:type=BatchlogManager #bean is set to org.apache.cassandra.db:type=BatchlogManager $>info #mbean = org.apache.cassandra.db:type=BatchlogManager #class name = org.apache.cassandra.batchlog.BatchlogManager # attributes %0 - TotalBatchesReplayed (long, r) # operations %0 - int countAllBatches() %1 - void forceBatchlogReplay() #there's no notifications $>get TotalBatchesReplayed #mbean = org.apache.cassandra.db:type=BatchlogManager: TotalBatchesReplayed = 0; $>run countAllBatches #calling operation countAllBatches of mbean org.apache.cassandra.db:type=BatchlogManager #operation returns: 0 'get' an attribute JMX on the command line: general syntax
  • 45. $>bean org.apache.cassandra.db:type=BatchlogManager #bean is set to org.apache.cassandra.db:type=BatchlogManager $>info #mbean = org.apache.cassandra.db:type=BatchlogManager #class name = org.apache.cassandra.batchlog.BatchlogManager # attributes %0 - TotalBatchesReplayed (long, r) # operations %0 - int countAllBatches() %1 - void forceBatchlogReplay() #there's no notifications $>get TotalBatchesReplayed #mbean = org.apache.cassandra.db:type=BatchlogManager: TotalBatchesReplayed = 0; $>run countAllBatches #calling operation countAllBatches of mbean org.apache.cassandra.db:type=BatchlogManager #operation returns: 0 'run' an operation JMX on the command line: general syntax
  • 47. JMX on JConsole Note: Complex-type (like arrays) are grayed out
  • 48. JMX on JConsole Note: Complex-type (like arrays) are grayed out tool-specific invocations
  • 49. JMX on JConsole Getting object name and attributes for CLI invocation
  • 50. A note about remote connections
  • 52. cassandra-env.sh false not there by default using LOCAL_JMX="no"
  • 53. 2. Visibility and exploration
  • 56. cluster communication Looking at small vs. large tasks (>64k) provides an idea of network efficiency
  • 57. cluster communication what does this node think of the others?
  • 58. cluster communication Click the value to see PhiValues for other nodes
  • 59. Commitlog efficiency: waiting on commit If this stays close to commitlog_size_in_mb there are bigger issues
  • 61. Commitlog efficiency: waiting on commit If this is high, you need to tune Time spent waiting for sync. This will climb if sync is lagging sync interval
  • 62. Commitlog efficiency: segment allocation time spent waiting on segment allocation
  • 63. Tombstone impact and compaction SSTable max local deletion time: 2147483647 Compression ratio: 0.5167785234899329 Estimated droppable tombstones: 0.3175 SSTable Level: 0 Repaired at: 0 Estimated tombstone drop times: 1471577046: 2 1471577146: 2 la-8-big-Data.db
  • 64. Tombstone impact and compaction SSTable max local deletion time: 2147483647 Compression ratio: 0.5167785234899329 Estimated droppable tombstones: 0.3175 SSTable Level: 0 Repaired at: 0 Estimated tombstone drop times: 1471577046: 2 1471577146: 2 la-8-big-Data.db Go see Alain's other talk
  • 65. Tombstone impact and compaction SSTable max local deletion time: 2147483647 Compression ratio: 0.5167785234899329 Estimated droppable tombstones: 0.3175 SSTable Level: 0 Repaired at: 0 Estimated tombstone drop times: 1471577046: 2 1471577146: 2 la-8-big-Data.db Go see Alain's other talk Or just read his blog: http://thelastpickle.com/blog/2016/07/27/about-deletes-and-tombstones.html
  • 66. droppable tombstone ratio clicking on the value provides a handy chart!
  • 67. 3. Useful management incantations
  • 68. Routing client requests away Set to '50.0' for routing away requests
  • 69. Figuring out if DynamicSnitch is kneecapping you https://issues.apache.org/jira/browse/ CASSANDRA-6908
  • 70. $>get Scores #mbean = org.apache.cassandra.db:type=DynamicEndpointSnitch: Scores = { /10.10.20.31 = 2.244811534881592; /10.10.20.30 = 0.5457598567008972; /10.10.20.37 = 2.7038445472717285; /10.10.20.36 = 3.0801687240600586; /10.10.20.39 = 6.231578826904297; /10.10.20.38 = 3.1578946113586426; /10.10.20.33 = 12.003381729125977; /10.10.20.32 = 3.348876476287842; /10.10.20.35 = 1.5086206197738647; /10.10.20.34 = 4.9235992431640625; /10.20.1.46 = 2.621400833129883; /10.20.1.44 = 1.3118916749954224; /10.20.1.45 = 1.6884760856628418; /10.30.50.62 = 2.4780631123519523; /10.30.50.63 = 2.3196894221189543; /10.30.50.61 = 1.2922532529365727; /10.20.1.50 = 7.66961669921875; /10.20.1.48 = 1.686340570449829; /10.30.50.68 = 0.9854942156774241; /10.20.8.81 = 0.7212558388710022; /10.30.50.78 = 2.4760895589502847; /10.30.50.79 = 1.2857443196017568; /10.30.50.76 = 0.7804878048780488; /10.30.50.77 = 1.8351790061811122; /10.20.1.102 = 2.4894514083862305; /10.20.1.103 = 0.5889776945114136; /10.20.1.106 = 0.8040626645088196; /10.20.1.104 = 1.4327855110168457; /10.20.1.105 = 0.75789475440979; }; DynamicSnitch: ouch! most common with real fast hardware - dramatic fluctuations - 22x difference!
  • 71. Turn it off via StorageService#updateSnitch: GossipingPropertyFileSnitch, false, 0, 0, 0 DynamicSnitch: disabling
  • 72. Turn it off via StorageService#updateSnitch: GossipingPropertyFileSnitch, false, 0, 0, 0 DynamicSnitch: disabling false
  • 73. Turn it off via StorageService#updateSnitch: GossipingPropertyFileSnitch, false, 0, 0, 0 DynamicSnitch: disabling I have no idea what will happen if you change the snitch
  • 75. CompactionManager: compaction throttling++ - MaximumCompactorThreads (change this first!!!) - CoreCompactorThreads (tip: see jmxterm example from earlier for CLI invocation)
  • 76. CompactionManager: compact a set of stables one or more "*-Data.db" files, comma-delimited
  • 81. CompactionManager: stop compaction type of compaction, most commonly: COMPACTION, VALIDATION, ANTI_COMPACTION, INDEX_SUMMARY https://github.com/apache/cassandra/blob/cassandra-3.0/src/java/org/apache/cassandra/db/compaction/OperationType.java
  • 82. Compaction identifier of active compaction CompactionManager: stop compaction
  • 83. Find the identifier of active compactions here (or nodetool compactionstats) CompactionManager: stop compaction
  • 85. CompactionParametersJson: Editable JSON test compaction settings on single node!!! Update compaction strategy
  • 88. Delete all hints or by host HintedHandoffManager
  • 89. Pause and resume delivery by host HintedHandoffManager
  • 90. StorageProxy: Adjust hint delivery settings
  • 91. StorageProxy: Adjust hint delivery settings On/off switch for hints
  • 92. StorageProxy: Adjust hint delivery settings How long to keep hints in milliseconds (3 hours by default)
  • 93. StorageProxy: Adjust hint delivery settings How many hints to send at a time
  • 95. StorageProxy: Adjust operation timeouts Amount of time spent in LWT Contention
  • 96. StorageProxy: Adjust operation timeouts Amount of time spent in LWT Contention See Chris' LWT presentation!
  • 97. StorageProxy: Adjust operation timeouts timeout for counter writes
  • 98. StorageProxy: Adjust operation timeouts Timeout for range queries (poorly bounded select statements)
  • 99. StorageProxy: Adjust operation timeouts Timeout for single read operation
  • 100. StorageProxy: Adjust operation timeouts Timeout for other miscellaneous inter-cluster operations
  • 101. StorageProxy: Adjust operation timeouts Timeout for write operations
  • 102. StorageProxy: Adjust operation timeouts special shoutout to TruncateRpcTimeout cqlsh> truncate table account; TimeoutException...
  • 103. StorageProxy: Adjust operation timeouts If you truncate, increase this by an order of magnitude
  • 104. Index sampling and summary SSTable
  • 106. Index summaries Invoke occasionally on a single node Warning: expensive operation!
  • 107. Index summaries watch the metrics for tuning
  • 108. Index summaries Table: account_event ... Index summary off heap memory used: 27732 ... combine with nodetool tablestats, then adjust: min_index_interval, max_index_interval
  • 110. StorageService: batch size thresholds Size of the largest batch in KB
  • 111. StorageService: tombstone thresholds Adjust failure and warning to remove log messages
  • 112. StorageService: tombstone thresholds Adjust failure and warning to remove log messages If you adjust these, you have bigger problems
  • 113. force stop repair Does just what it says.
  • 114. bulk load (sync and async) File path as arguments: /some/path/${keyspace}/${table}/
  • 115. Recover commit log segments Helpful for reloading commitlogs from a backup
  • 116. 4. Access Control: locking down JMX
  • 117. nmap -Pn -p7199 -oG logs/cass.gnmap 54.88.0.0/14 Haha! You exposed a command plane to the internet
  • 118. nmap -Pn -p7199 -oG logs/cass.gnmap 54.88.0.0/14 Haha! You exposed a command plane to the internet Shameless Plug!
  • 119. Why do I need to secure JMX?
  • 120. Why do I need to secure JMX? StorageService.truncate("your_keyspace", "your_table")
  • 121. Why do I need to secure JMX? StorageService.truncate("your_keyspace", "your_table")
  • 122. Why do I need to secure JMX? StorageService.truncate("your_keyspace", "your_table") Now with internet access!!
  • 123. Why do I need to secure JMX? StorageService.truncate("your_keyspace", "your_table") Now with internet access!! Works as Advertised!
  • 124. Why do I need to secure JMX? StorageService.removeNode("coworker_IPADR")
  • 125. Why do I need to secure JMX? StorageService.removeNode("coworker_IPADR") Fun for the whole development team!
  • 126. Securing JMX SSL setup is like node to node and client to server http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html
  • 127. Securing JMX JMX Authentication is straightforward and well documented $JAVA_HOME/jre/lib/management/jmxremote.access $JAVA_HOME/jre/lib/management/ jmxremote.password.template http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html
  • 128. Securing JMX $JAVA_HOME/jre/lib/management/jmxremote.access $JAVA_HOME/jre/lib/management/ jmxremote.password.template Now you can: nodetool -u admin -pw secret compactionstats http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html JMX Authentication is straightforward and well documented
  • 129. Securing JMX $JAVA_HOME/jre/lib/management/jmxremote.access $JAVA_HOME/jre/lib/management/ jmxremote.password.template Now you can: nodetool -u admin -pw secret compactionstats Tip: -pwf option will read the password from a file http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html JMX Authentication is straightforward and well documented
  • 130. Securing JMX $JAVA_HOME/jre/lib/management/jmxremote.access $JAVA_HOME/jre/lib/management/ jmxremote.password.template Now you can: nodetool -u admin -pw secret compactionstats JMX Authentication is straightforward and well documented RBAC for JMX Authentication and Authorization is now supported https://issues.apache.org/jira/browse/CASSANDRA-10091