docker-compose 运行kafka内存饱满

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 1073741824 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /usr/local/src/kafka_2.10-0.10.0.1/bin/hs_err_pid5584.log

当时在potainer中运行kafka怎么都不能启动,后来查看日志是内存爆满,需要在docker-compose文件中加入类似的设置,内存设置大点就行了。

 environment:
  KAFKA_HEAP_OPTS : "-Xmx256M -Xms128M" 

解决了这个问题,还会出现一个问题。

kafka                        | Memory: 4k page, physical 512000k(510008k free), swap 0k(0k free)

当kafka启动的时候如果出现swap为0k的情况,需要修改交换内存,以下内容参考
解决方法:*

先执行下面命令 查看内存是不是还有 最主要的是 看有没有交换空间 swap 如果没有交换空间 或者交换空间比较小 要先安装交换空间 或者增大空间

free -m

1.创建一个大小为500M的swapfile文件:

dd if=/dev/zero of=swapfile bs=1024 count=500000

在root权限下,创建swapfile (有时会遇到dd命令不识别 可能是你安装过一次了 那就先把swapfile删除。)像/dev/null一样, /dev/zero也是一个伪文件, 但它实际上产生连续不断的null的流(二进制的零流,而不是ASCII型的)。/dev/zero主要的用处是用来创建一个指定长度用于初始化的空文件,就像临时交换文件。

2.将swapfile设置为swap空间(把这个文件变成swap文件)

mkswap swapfile

3.启用交换空间(启用这个swap文件)

swapon swapfile 

删除交换空间命令:swapoff swapfile

至此增加交换空间的操作结束了。可以使用free命令查看swap空间大小是否发生变化;
之后再重新部署kafka,就成功了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值