内存选择

Cassandra节点没有最合适的内存配置,内存的大小取决于节点需要处理的数据。一般来说,集群节点至少需要8GB的内存,所部署的服务器服务器至少需要有64GB到256GB的内存。
如果Cassandra节点的内存给的太小,那么节点的memtables就会越小,这就意味着该Cassandra节点就会在硬盘上生成大量的小SSTable。查询的时候就会消耗更多的磁盘I/O。对性能影响很大。
所以说,赋给Cassandra节点的内存越大,节点的性能就会越好

CPU选择

Cassandra需要处理大量的写入压缩等操作,所以CPU的性能对Cassandra的性能也非常重要。
DataStax建议:16核的服务器是一个好的选择

带宽的选择

由于Cassandra是一个分布式的数据库,所以数据的读写和复制对Cassandra的性能都有非常大的影响。
所以网络带宽至少需要1GB或更大。

硬盘的选择

Cassandra何时使用硬盘

  • 当Cassandra把数据写入commit log时。
  • 当Cassandra把数据从memtables里刷到SSTable数据文件时。
  • 当Cassandra定期压缩SSTables时(压缩会临时增大磁盘使用空间,在最坏的情况下,比如压缩策略使用SizeTierdCompactionStrategy时,压缩SSTable使用的空间会是SSTable总量的两倍)。

最好使用SSD

由于Cassandra读写的数据最终都在硬盘上,所以硬盘的性能越好,Cassandra的性能也会越好。Cassandra对SSD的读写也进行了优化,使用SSD也能大大加速对数据的读写。

NFS, SAN和NAS都不推荐

为了提高IO,硬盘最好是在本地,并且越快越好。

如何评估硬盘的使用量

Cassandra对硬盘的使用主要用在存储commit log和数据目录。数据目录主要存储SSTable数据。除了这些,Cassandra还需要更多的空间来执行压缩工作。
最理想的情况下,存储commit log和数据目录的硬盘要分开。

下面我们看下如何计算集群的存储空间:

  1. 计算物理硬盘的原始大小:比如12块盘,每块盘7.2TB,则总量为12 * 7.2TB = 86.4TB
  2. 计算磁盘的可用空间,基本按90%算。 86.4 * 0.9 = 76.76TB。
  3. 由于Cassandra需要磁盘存储来进行压缩和修复操作,所以我们不能把所有空间都用于commit log存储和数据存储。DataStax建议仅分配可用容量的50% ~80%来存储数据。其他的空间用于压缩等操作。

Linux系统参数

同步时钟并启用NTP

由于只有时间戳比已有数据更新时,Cassandra才会更新数据列。所以在集群上所有节点同步时钟非常重要。您可以使用NTP(Network Time Protocol)或其他方法来同步时钟。
如果您集群无法访问Internet,可以通过编辑/etc/sysconfig/ntpd文件将其中一台服务器设置为NTP服务器。然后同步其他服务器。

在NUMA系统中禁用zone_reclaim_mode

为了避免潜在的性能问题,必须禁用’zone_reclaim_mode`。
可以使用如下方式检查:

cat /proc/sys/vm/zone_reclaim_mode
0

如果输出不是0,则使用如下方式来禁用:

echo 0 > /proc/sys/vm/zone_reclaim_mode

TCP设置

因为Cassandra的数据传输非常的重,所以我们需要通过编辑/etc/sysctl.conf文件来增加默认的TCP设置:

net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.rmem_default = 16777216
net.core.wmem_default = 16777216
net.core.optmem_max = 40960
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

然后使用sudo sysctl –p /etc/sysctl.conf命令来使其生效。

用户资源限制

/etc/security/ limits.conf文件中更新:

<cassandra_user> - memlock unlimited
<cassandra_user> - nofile 100000
<cassandra_user> - nproc 32768
<cassandra_user> - as unlimited
soft nofile 32768
hard nofile 32768
hard nproc 32768
soft nproc 32768

另外还需要包含如下设置:

vm.max_map_count = 1048575

关闭透明大页

echo never | sudo tee /sys/kernel/mm/transparent_hugepage/defrag

禁用swap

sudo swapoff -all

Cassandra集群部署最优配置相关推荐

  1. Cassandra1.2文档学习(7)—— 规划集群部署

    数据参考:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/architecture/a ...

  2. Kafka系列(七)、Kafka套件 Confluent Platform 单机/集群部署

    目录 简介 单机部署 集群部署 尾巴 Kafka系列: kafka 2.4.1单机版部署及使用 kafka监控系统kafka eagle安装使用 滴滴开源的kafka-manager编译及部署使用 k ...

  3. Kylin集群部署和cube使用

    Kylin集群部署和cube使用 安装集群环境 节点 Kylin节点模式 Ip 内存 磁盘 Node1 All 192.167.71.11 2G 80G Node2 query 192.168.71. ...

  4. 堡垒机jumpserver集群部署

    本文参考老广二次开发后的堡垒机部署方案,在此基础上进行集群部署,提高其可靠性.尽管国外已经有类似的功能的堡垒机的发布,但是还是要感谢老广在百忙之中开发出更加实用的堡垒机. 本文内容虽然亲测,但内容难免 ...

  5. 百度开源联邦学习框架 PaddleFL:简化大规模分布式集群部署

    百度开源联邦学习框架 PaddleFL:简化大规模分布式集群部署 作者 | 钰莹近两年,联邦学习技术发展迅速.作为分布式的机器学习范式,联邦学习能够有效解决数据孤岛问题,让参与方在不共享数据的基础上联 ...

  6. 手动安装K8s第三节:etcd集群部署

    手动安装K8s第三节:etcd集群部署 准备安装包 https://github.com/coreos/etcd 版本:3.2.18 wget https://github.com/coreos/et ...

  7. zookeeper+kafka集群部署+storm集群

    zookeeper+kafka集群部署+storm集群 一.环境安装前准备: 准备三台机器 操作系统:centos6.8 jdk:jdk-8u111-linux-x64.gz zookeeper:zo ...

  8. Linux集群部署和ipvsadm命令的使用

    在日常的使用中,一台服务器足够胜任很多的工作,但是当很多人同时访问的时候就会显得稍有些无力,这个时候.可以有两种解决的方法,第一种是不断的改善这台服务器的性能,但是总是会有一个上限存在,而且提升的效果 ...

  9. Ceph v12.2 Luminous基于ubuntu16.04集群部署

    第一次接触ceph集群,感谢官方的指导文档和许多网友提供的教程,糊糊涂涂算是把集群部署起来了.由于Luminous12.2刚发布不久,部署起来跟旧版本还是有些许差别,所以以此做下笔记也给需要的人做下参 ...

最新文章

  1. 宏基因组分析技术研讨会-2019年最后一期
  2. 010 Android之逆向入门
  3. leetcode:Minimum Depth of Binary Tree【Python版】
  4. “约见”面试官系列之常见面试题之第五十一篇之CSS Sprites(建议收藏)
  5. 深入理解golang 的栈
  6. 取消预约的c语言代码大全,C语言机房机位预约系统课设(附源码).doc
  7. h5页面保存img_如何设计H5编辑器中的模版库并实现自动生成封面图
  8. 在linux下,为php增加mbstring扩展
  9. N76E003的学习之路(一)
  10. 医疗健康领域的短文本解析探索 ----文本纠错
  11. Linux中的ls命令详细使用
  12. mysql在故障切换时的事件调度器注意事项
  13. dbfs和dbm的换算_功率W与dBm的对照表及关系(转)
  14. excel两列数据对比找不同_数据相差太大在Excel图表对比柱形图,那是你不会次坐标设置!...
  15. 甘特图(xGantt)项目管理 - 多维企业级
  16. 线上连锁线下整合 连锁店电商解决方案
  17. 生信分析过程中这些常见文件(fastq/bed/gtf/sam/bam/wig)的格式以及查看方式你都知道吗?
  18. 计算机体系结构在线读,计算机体系结构复习题.ppt
  19. Race condition
  20. iOS开发-聊天气泡的绘制和聊天消息列表

热门文章

  1. X射线系统、超声波系统及MRI数字成像原理解析
  2. vaspkit使用_vaspkit的使用
  3. 爱丁堡 计算机科学硕士,爱丁堡大学计算机科学硕士申请.pdf
  4. Windows7系统助手
  5. Web安全 RCE漏洞(命令执行漏洞的 测试和利用).
  6. 安卓桌面软件_银河麒麟桌面操作系统是易用性和兼容性良好兼容的国产桌面操作系统...
  7. 高校教师工资管理系统java_基于jsp的高校职工工资管理系统-JavaEE实现高校职工工资管理系统 - java项目源码...
  8. 【愚公系列】2023年06月 移动安全之安卓逆向(插桩及栈分析)
  9. join on 后跟or有什么用_如果在ON子句中使用OR,MySQL将不会在JOIN中使用可用索引
  10. windows系统蓝屏集