You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ubuntu虚拟机中仅关闭Cassandra 3.0的swap(非系统级)?

针对Cassandra单独禁用Swap的可行性及操作方法

当然可行啦!针对Cassandra 3.0单独禁用Swap而不影响Ubuntu虚拟机的系统级Swap是完全可以实现的——毕竟Cassandra官方本身就强烈建议避免Swap使用,以此保证集群的性能稳定性和响应速度。下面给你两种实用的操作方法:

方法一:永久生效(通过Cassandra配置实现)

这种方法会让Cassandra每次启动都自动禁用Swap,适合长期使用:

  • 首先找到Cassandra的JVM配置文件jvm.options,通常路径是/etc/cassandra/jvm.options(如果是自定义安装,就在你的安装目录下的conf文件夹里)
  • 打开文件后,添加或修改以下关键JVM参数,让Cassandra进程锁定内存,彻底避开Swap:
    # 新增或确保以下参数存在
    -XX:+LockAllMemory
    -XX:+UseLargePages
    
  • 注意:使用-XX:+LockAllMemory需要给Cassandra用户分配足够的内存锁定权限,你需要编辑/etc/security/limits.conf文件,添加两行配置:
    cassandra soft memlock unlimited
    cassandra hard memlock unlimited
    
  • 保存所有修改后,重启Cassandra服务使配置生效:
    # 如果用systemd管理服务
    sudo systemctl restart cassandra
    # 或者用传统service命令
    sudo service cassandra restart
    

方法二:临时生效(针对当前运行的Cassandra进程)

如果只是想临时测试禁用Swap的效果,不想修改配置或重启服务,可以用这个方法:

  • 先找到Cassandra的进程ID(PID):
    pgrep cassandra
    
  • 使用prlimit命令修改该进程的Swap限制,直接将Swap配额设为0:
    sudo prlimit --swap=0:0 -p <你的Cassandra进程PID>
    
  • 注意:这个设置在Cassandra重启后会失效,仅对当前运行的进程有效

验证是否成功禁用Swap

操作完成后,你可以验证一下Cassandra进程是否真的不再使用Swap:

  • 执行以下命令(替换<PID>为你的Cassandra进程ID):
    cat /proc/<PID>/status | grep VmSwap
    
  • 如果输出显示VmSwap: 0 kB,就说明已经成功禁用了该进程的Swap使用啦!

内容的提问来源于stack exchange,提问作者Pradeep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:58:13