Cassandra hohe cpu-Auslastung
Ich bin runnging sechs Knoten-cluster
gibt es einen Knoten, verhält sich anders als andere Knoten mit einer hohen cpu-Auslastung
Fand ich WARNEN im system.log zeigte, dass eine Menge von tombstone Zelle die abgefragt wurden.
mittlerweile, über die jvm-tools , zeigt einige sharedpool-Arbeiter mit hoher cpu-Auslastung
FYI ich mit den Werkzeugen führt hier:
https://tobert.github.io/pages/als-cassandra-21-tuning-guide.html
update
Ich habe gesehen, eine Menge der Grabstein liest, vielleicht es ist mit hoher cpu-Auslastung?
Ich denke, dass es es über die Daten-Modell-design
CREATE TABLE ecoboost_visit.visit (
enterprise_id int,
id text,
app_name text,
app_version text,
appkey text,
browser_family text,
browser_version text,
browser_version_string text,
city text,
country text,
created_on timestamp,
device_brand text,
device_family text,
device_model text,
device_token text,
first_visit_page_domain_by_session text,
first_visit_page_source_by_session text,
first_visit_page_source_domain_by_session text,
first_visit_page_source_keyword_by_session text,
first_visit_page_source_url_by_session text,
first_visit_page_title_by_session text,
first_visit_page_url_by_session text,
ip text,
isp text,
net_type text,
os_category text,
os_family text,
os_language text,
os_timezone text,
os_version text,
os_version_string text,
platform text,
province text,
resolution text,
sdk_image_url text,
sdk_name text,
sdk_source text,
sdk_version text,
track_id text,
ua_string text,
PRIMARY KEY (enterprise_id, id)
) WITH CLUSTERING ORDER BY (id ASC)
AND bloom_filter_fp_chance = 0.1
AND caching = '{"keys":"ALL", "rows_per_partition":"0"}'
AND comment = ''
AND compaction = {'sstable_size_in_mb': '64', 'tombstone_threshold': '.2', 'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'}
AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99.0PERCENTILE';
Habe ich diese Tabelle zu verfolgen, Besuche protokollieren, jede ent
bedeutet, dass eine website
Hier ist der GC-INfo
INFO [Service Thread] 2016-04-02 07:38:16,554 GCInspector.java:278 - ConcurrentMarkSweep GC in 225ms. CMS Old Gen: 5640515840 -> 2868732344; Par Eden Space: 16464 -> 418333648; Par Survivor Space: 5774976 -> 3817304
INFO [Service Thread] 2016-04-03 07:08:27,224 GCInspector.java:278 - ConcurrentMarkSweep GC in 209ms. CMS Old Gen: 5637562768 -> 2887903056; Par Eden Space: 6704 -> 2306495144;
INFO [Service Thread] 2016-04-06 06:34:18,908 GCInspector.java:278 - ConcurrentMarkSweep GC in 225ms. CMS Old Gen: 5642735152 -> 3061550896; Par Eden Space: 8547280 -> 644954400; Par Survivor Space: 6253328 -> 2236696
INFO [Service Thread] 2016-04-07 06:03:13,598 GCInspector.java:278 - ConcurrentMarkSweep GC in 221ms. CMS Old Gen: 5638070792 -> 3173030976; Par Eden Space: 670736 -> 683574904; Par Survivor Space: 2089552 -> 2448848
INFO [Service Thread] 2016-04-12 10:38:15,825 GCInspector.java:278 - ParNew GC in 7860ms. CMS Old Gen: 5331043280 -> 5331554336; Par Eden Space: 2577006592 -> 0; Par Survivor Space: 2984416 -> 25906264
InformationsquelleAutor alexband | 2016-03-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht ganz klar, was Los ist - sehen die Ausgabe von
nodetool tpstats
würde geben uns eine Vorstellung von der Arbeitsbelastung, die Sie derzeit ausführen (Lesen schwer? schreiben schwer? Zähler?). Ohne, dass wir erraten können:Wenn Sie einen Knoten haben, das Fehlverhalten von 6, ist es möglich, dass alle clients sind irgendwie zu stecken, dass ein Knoten. Wenn Sie RF=3 typisch ist, würden Sie erwarten, dass 3 nodes, sich schlecht zu benehmen (was auf eine Daten-hot-spot). Was ist Ihre
replication_factor
für Ihre Schlüsselraum?Haben Sie ganz ein paar Spalten. Es ist nicht genug, um den finger zeigen und sagen "dies ist falsch", aber es ist ein gutes Stück. Wenn Sie ein update einer Spalte in einer Zeit, diesem schema sinnvoll ist. Wenn Sie schreiben immer eine ganze Zeile zu einer Zeit, werden Sie wahrscheinlich eine bessere Leistung erhalten, wenn Sie serialisieren Sie die Daten selbst in eine JSON oder ähnliche blob, und schreiben Sie es als eine undurchsichtige Spalte.
Mit
tombstone_threshold
von 0,2 sind, werden Sie wahrscheinlich re-sstables compact ziemlich Häufig, wenn Sie zu überschreiben. Ihre tombstone-Nachrichten, ich vermute, Sie erstellen eine Reihe von Grabsteinen - ist Ihren Knoten beschäftigt komprimieren? Wasnodetool compactionstats
sagen? Wenn Sie beschäftigt sind, verdichten, Sie einzustellen, können diese entweder durch Drosselung Verdichtung Durchsatz oder Verringerung der Anzahl der concurrent_compactors.Mit einem 5,9 GB komprimiert partition, und 2,6 GB/s-heap, was Sie wahrscheinlich sehen, ist, dass wenn Cassandra liest aus einer CQL-partition, es hat zu Deserialisieren der Segmente zu finden, die relevanten Teile der partition für die Scheibe, die Sie angefordert haben. Schafft so eine MENGE von java-garbage - wenn Sie ParNew/CMS, werden Sie oft ein Schlag aus der neuen generation, und sehe eine sehr häufige ParNew mal, wie Sie füllen+Förderung der alten gen, und dann je nachdem, wie viel Platz Sie haben, können Sie füllen alte gen und sehen sehr lange Sammlungen, wie Sie sammeln Müll in der alten gen, um Platz zu machen für die nächsten befördert Müll aus einer späteren Lesen.
In 3.6, werden Sie wahrscheinlich sehen, ein stop-Lücke soll vorübergehend, bis CASSANDRA-9754 fertig ist.
danke, habe ich hochgeladen tpstats
gc info im system.log INFO [Service Thread] 2016-04-12 10:38:15,825 GCInspector.java:278 - ParNew GC in 7860ms. CMS Alten Gen: 5331043280 -> 5331554336; Par Eden Raum: 2577006592 -> 0; Par Survivor Space: 2984416 -> 2590626
7,8 zweiten ParNew ist ein ziemlich deutliches Zeichen, du bist in einem schlechten Platz in Bezug auf garbage collection. Sie müssen abwägen, mit einer Erhöhung Ihres neuen generation-Größe (oder sogar neuen gen-und max-heap-Größe), oder fixieren Sie Ihre Daten-Modells - Partitionen zu groß, und das geht nicht, sich richtig zu Verhalten in der 2.x
issues.apache.org/jira/browse/CASSANDRA-8150 hat einige andere wirklich hilfreich GC tuning-Ideen. Viele fallen in Al s 2.1 tuning guide.
InformationsquelleAutor Jeff Jirsa
Ich würde überprüfen Sie die version Ihres Kernels. Sie können auf den java-futex_wait beschriebenen Fehler hier.
Ich habe noch mehr Bilder.
sorry ich Editiere die Frage, die den Körper..
InformationsquelleAutor Zanson