2

構造化されていない投稿で申し訳ありません。私はここで初めてやりますが、私は開発者ではありません。私たちが得ることができる助けをいただければ幸いです!! 前もって感謝します。

Cassandraをデータベースとして使用する当社製品をご購入いただいたお客様のカスタマーサポートを承っております。顧客は 1 つの Cassandra ノードを持ち、SAN デバイスを使用しています。私たちは、それが悪い習慣になる可能性があることを知っています. 次の記事を認識しています: https://www.datastax.com/dev/blog/impact-of-shared-storage-on-apache-cassandra
お客様のストレージ (Cassandra データベース) は、次の例外:

  ERROR [PERIODIC-COMMIT-LOG-SYNCER] 2017-12-10 19:54:16,27... 
  ERROR [PERIODIC-COMMIT-LOG-SYNCER] 2017-12-10 19:54:16,279 JVMStabilityInspector.java:118 - JVM state determined to be unstable.  Exiting forcefully due to:
                org.apache.cassandra.io.FSWriteError: java.io.IOException: The semaphore timeout period has expired 
                        at org.apache.cassandra.db.commitlog.MemoryMappedSegment.write(MemoryMappedSegment.java:100) ~[apache-cassandra-2.2.8.jar:2.2.8]
                        at org.apache.cassandra.db.commitlog.CommitLogSegment.sync(CommitLogSegment.java:296) ~[apache-cassandra-2.2.8.jar:2.2.8]
                        at org.apache.cassandra.db.commitlog.CommitLog.sync(CommitLog.java:230) ~[apache-cassandra-2.2.8.jar:2.2.8] 
                        at org.apache.cassandra.db.commitlog.AbstractCommitLogService$1.run(AbstractCommitLogService.java:93) ~[apache-cassandra-2.2.8.jar:2.2.8]
                        at java.lang.Thread.run(Unknown Source) [na:1.8.0_151] 
                Caused by: java.io.IOException: The semaphore timeout period has expired 
                        at java.nio.MappedByteBuffer.force0(Native Method) ~[na:1.8.0_151] 
                        at java.nio.MappedByteBuffer.force(Unknown Source) ~[na:1.8.0_151] 
                        at org.apache.cassandra.utils.SyncUtil.force(SyncUtil.java:113) ~[apache-cassandra-2.2.8.jar:2.2.8] 
                        at org.apache.cassandra.db.commitlog.MemoryMappedSegment.write(MemoryMappedSegment.java:96) ~[apache-cassandra-2.2.8.jar:2.2.8]
                        ... 4 common frames omitted   

私の質問は次のとおりです。

  • パフォーマンスを犠牲にして Cassandra を動作させることは可能ですか? 顧客は、当社の製品に使用するために SAN デバイスを購入しました。彼らは私たちの製品を既存の RAID 5 LUN から新しい RAID 10 LUN に移行することにも前向きですが、それが機能するかどうかはわかりません。
  • Cassandra の構成パラメーターのいくつかを微調整して、データベースのクラッシュが停止するかどうかを確認する価値はありますか? はいの場合、どの構成パラメータがこの問題に影響しますか?

パフォーマンス データを監視して例外を確認した後、速度を落として Cassandra をより安定させることにしました。同時読み取りと書き込みに影響するパラメーターを変更しました。Cassandra データベースが十分に安定したら、値を少し増やし始めることができると考えました。具体的には、Casssandra.yaml ファイルの次のプロパティを変更しました。

                  commitlog_sync_period_in_ms: 3600000
                   concurrent_reads: 4
                   concurrent_writes: 4
                   concurrent_counter_writes: 4

Cassandra は 1.5 時間後に墜落しました。

                 **Cassandra.yaml:**

    batchlog_replay_throttle_in_kb: 1024
    role_manager: CassandraRoleManager
    roles_validity_in_ms: 2000
    disk_failure_policy: die
    disk_access_mode: standard 
    commit_failure_policy: die
    key_cache_save_period: 14400
    row_cache_size_in_mb: 0
    row_cache_save_period: 0
    counter_cache_size_in_mb:0
    counter_cache_save_period: 7200
    commitlog_sync: periodic
    commitlog_sync_period_in_ms: 3600000
    commitlog_segment_size_in_mb: 128
    concurrent_reads: 4
    concurrent_writes: 4
    concurrent_counter_writes: 4
    file_cache_size_in_mb: 128
    memtable_heap_space_in_mb: 128
    memtable_offheap_space_in_mb: 128
    memtable_allocation_type: heap_buffers
    commitlog_total_space_in_mb: 1024
    index_summary_resize_interval_in_minutes: 60
    trickle_fsync: false
    trickle_fsync_interval_in_kb: 10240
    storage_port: 7100
    thrift_framed_transport_size_in_mb: 160
    incremental_backups: false
    column_index_size_in_kb: 64
    batch_size_warn_threshold_in_kb: 5
    batch_size_fail_threshold_in_kb: 50
    unlogged_batch_across_partitions_warn_threshold: 10    
    server_encryption_options:
        internode_encryption: none
        keystore: conf/.keystore
        keystore_password: cassandra
        truststore: conf/.truststore
        truststore_password: cassandra
        client_encryption_options:
        enabled: true
        optional: false
        require_client_auth: true


 Customer environment:
    ReleaseVersion: 2.2.8
    Windows 2012 R2
    Java 1.8.0_151

Cassandra ストレージが配置されているディスクのリソース モニター
Perfmon データ

4

0 に答える 0