如何卡桑德拉会话分配

问题描述 投票:1回答:1

我看到我的Linux实例卡桑德拉java程序,它使用〜内存38GB和表演〜700个线程在它之下。

  1. 当任何连接到数据库通过Python或Java做?难道他们成为主要的Java进程或一个单独的操作系统进程下一个线程?
  2. 当群集连接产卵多线程,将他们也成为主要的进程下的线程会发生什么?如果是这样,如何连接线和连接线产卵区分?
  3. 分配给会话线程的内存,它获得在非堆内存分配呢?

更新 - @克里斯 - 这里是tpstats的输出

[username@hostname ~]$ nodetool tpstats
Pool Name                         Active   Pending      Completed   Blocked  All time blocked
ReadStage                              0         0      110336013         0                 0
ContinuousPagingStage                  0         0             31         0                 0
MiscStage                              0         0              0         0                 0
CompactionExecutor                     0         0        4244757         0                 0
MutationStage                          0         0       25309020         0                 0
GossipStage                            0         0        2484700         0                 0
RequestResponseStage                   0         0       46705216         0                 0
ReadRepairStage                        0         0        2193356         0                 0
CounterMutationStage                   0         0        3563130         0                 0
MemtablePostFlush                      0         0         117717         0                 0
ValidationExecutor                     1         1         111176         0                 0
MemtableFlushWriter                    0         0          23843         0                 0
ViewMutationStage                      0         0              0         0                 0
CacheCleanupExecutor                   0         0              0         0                 0
Repair#1953                            1         3              1         0                 0
MemtableReclaimMemory                  0         0          28251         0                 0
PendingRangeCalculator                 0         0              6         0                 0
AntiCompactionExecutor                 0         0              0         0                 0
SecondaryIndexManagement               0         0              0         0                 0
HintsDispatcher                        0         0             29         0                 0
Native-Transport-Requests              0         0      110953286         0                 0
MigrationStage                         0         0             19         0                 0
PerDiskMemtableFlushWriter_0           0         0          27853         0                 0
Sampler                                0         0              0         0                 0
InternalResponseStage                  0         0          21264         0                 0
AntiEntropyStage                       0         0         350913         0                 0

Message type           Dropped                  Latency waiting in queue (micros)                                    
                                             50%               95%               99%               Max
READ                         0              0.00              0.00              0.00          10090.81
RANGE_SLICE                  0              0.00              0.00          10090.81          10090.81
_TRACE                       0               N/A               N/A               N/A               N/A
HINT                         0              0.00              0.00              0.00              0.00
MUTATION                     0              0.00              0.00              0.00          10090.81
COUNTER_MUTATION             0              0.00              0.00              0.00          10090.81
BATCH_STORE                  0              0.00              0.00              0.00              0.00
BATCH_REMOVE                 0              0.00              0.00              0.00              0.00
REQUEST_RESPONSE             0              0.00              0.00              0.00          12108.97
PAGED_RANGE                  0               N/A               N/A               N/A               N/A
READ_REPAIR                  0              0.00              0.00              0.00              0.00```

cassandra jvm
1个回答
1
投票

该连接到哪个应该有线程等于核数的网状服务,即使你有10000点连接的客户端。然而卡桑德拉最初设计为具有分阶段事件驱动架构(SEDA),其一个异步和全螺纹模型之间有点坐在。它创建线程池来处理不同类型的任务。这是否意味着但是这取决于在你的YAML的配置可以有很多线程。例如默认那里有多达128个线程的本机传输池,32层并发的读者,32名并发作家,32个计数器突变等,但如果你的集群进行了调整,为固态硬盘,这些可能会更高。考虑到这一点那里有许多这些池使用的共享池(显示为SharedWorkers)与SEPExecutor(单执行池)。因此,尖峰可能有很多,但创建线程可能不被经常使用。

nodetool tpstats会给你的细节上不同的游泳池,有多少是活跃的,它可以帮助确定哪些,如果正在使用的线程。如果不是有那么你也可以使用jstack(使用尽可能相同的用户卡桑德拉过程)转储的痕迹。如果其过多过孤单的工具看起来像https://fastthread.io/,使观看更方便。

对于内存它是什么值得32GB和700个线程听起来不像一个问题。

© www.soinside.com 2019 - 2024. All rights reserved.