范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

解决k8sMysqlCluster无故重启问题

  前言
  使用 bitpoke的mysql-operator 作为k8s的mysql服务,使用的版本v0.4.0,
  github地址:https://github.com/bitpoke/mysql-operator 介绍
  MysqlCluster operator主要支持如下功能 数据自动备份/还原 主从模式 支持Prometheus 数据监控 问题产生
  建立的mysql服务每隔一段时间就重启,事件的报错信息如下 Readiness probe failed: ERROR 2003 (HY000): Can"t connect to MySQL server on "127.0.0.1" (111) /bin/sh: line 0: test: -eq: unary operator expected  Liveness probe failed: Get "http://172.31.210.72:9125/metrics": dial tcp 172.31.210.72:9125: connect: connection refused 定位问题
  为什么心跳不通过?
  貌似心跳机制不通过,查看pod信息
  pod 探针设置
  心跳默认20秒不通过,就重启,看源码也没有心跳配置项,坑啊,不过这只是表象,到底是什么导致心跳不通过?
  mysqlCluster启动时,会启动4个容器metrices-exporter, mysql, pt-heartbeat, sidecar。看这4个容器的cpu, 内存使用情况,发现mysql内存超过,如下:
  mysql内存使用情况
  看最后状态,OOMKilled,而且当前内存使用率3.9G 接近limit 4G的设置。 找到产生的问题原因了,是因为内存超了,被容器杀掉,导致心跳不通过报错重启
  为什么内存使用这么高?
  思考mysql使用内存高,可能跟mysql自身缓存有关系,查内存相关参数 show variables where variable_name in ("innodb_buffer_pool_size","innodb_log_buffer_size","innodb_additional_mem_pool_size","key_buffer_size","query_cache_size");
  mysql配置信息
  看到 innodb_buffer_pool_size 设置得值特别大,这个参数设置只有主要缓存innodb表的索引,数据,插入数据时的缓冲,但默认是8M。
  为什么 innodb_buffer_pool_size 设置变得这么大?
  翻翻mysqlCluster源码,跟innodb_buffer_pool_size 有关代码
  default.go // 没有设置innodb-buffer-pool-size ,通过cluster.Spec.PodSpec.Resources.Requests.Memory 配置项计算一个 // set innodb-buffer-pool-size if not set 	innodbBufferPoolSize := 128 * mb // MySQL default value 	if mem := cluster.Spec.PodSpec.Resources.Requests.Memory(); mem != nil && !mem.IsZero() { 		var cErr error 		if innodbBufferPoolSize, cErr = computeInnodbBufferPoolSize(mem); cErr == nil { 			setConfigIfNotSet(cluster.Spec.MysqlConf, "innodb-buffer-pool-size", humanizeSize(innodbBufferPoolSize)) 		} 	} 	 // 计算大小 func computeInnodbBufferPoolSize(mem *resource.Quantity) (int64, error) { 	availableMem := mem.Copy() 	percentRAM := 0.75  	if mem.Value() <= 512*mb { 		// don"t set innodb-buffer-pool-size leave it to mysql default (128M) 		return 0, fmt.Errorf("memory too small to compute innodb-buffer-pool-size: %s", mem) 	} else if mem.Value() <= 1*gb { 		// RAM <= 1gb => buffer size set to RAM * 0.5 		availableMem.Sub(resource.MustParse("256Mi")) 		percentRAM = 0.5 	} else if mem.Value() <= 4*gb { 		// RAM <= 4gb => buffer size set to RAM * 0.75 		availableMem.Sub(resource.MustParse("256Mi")) 		percentRAM = 0.75 	} else if mem.Value() > 4*gb { 		// RAM > 4gb => buffer size set to RAM * 0.8 		availableMem.Sub(resource.MustParse("512Mi")) 		percentRAM = 0.8 	}  	return int64(float64(availableMem.Value()) * percentRAM), nil }
  源码解析:没有设置innodb-buffer-pool-size, 则通过cluster.Spec.PodSpec.Resources.Requests.Memory 大小的参数乘以系数,这里是0.75,所以是3G。
  问题就在这里,为了保证资源独占,mysql设置时是request = limit,因为自动计算导致 innodb-buffer-pool-size过大,最终导致oom,需要手动设置innodb-buffer-pool-size,就手动设置2G吧 mysqlConf:  innodb-buffer-pool-size: 2147483648
  设置 innodb-buffer-pool-size 不生效?
  设置后,pod不重启? 参数没有生效设置。设另一个512M就生效了。尝试加入引号,作为字符串处理,配置开始生效。难道跟类型有关系? 继续看相关源码
  default.go innodbBufferPoolSize := 128 * mb // MySQL default value if mem := cluster.Spec.PodSpec.Resources.Requests.Memory(); mem != nil && !mem.IsZero() { 	var cErr error 	if innodbBufferPoolSize, cErr = computeInnodbBufferPoolSize(mem); cErr == nil { 		setConfigIfNotSet(cluster.Spec.MysqlConf, "innodb-buffer-pool-size", humanizeSize(innodbBufferPoolSize)) 	} }
  看这个类型定义cluster.Spec.MysqlConf
  MysqlClusterSpec type MysqlConf map[string]intstr.IntOrString
  intstr type IntOrString struct { 	Type   Type   `protobuf:"varint,1,opt,name=type,casttype=Type"` 	IntVal int32  `protobuf:"varint,2,opt,name=intVal"` 	StrVal string `protobuf:"bytes,3,opt,name=strVal"` }
  如果设置成数字,则整数是int32位
  看int32位的长度
  int32 the set of all signed 32-bit integers (-2147483648 to 2147483647)
  2147483647 < 2147483648 = 2g 所以应该是配置报错,但没有抛出来而已
  至此内存使用过大的问题,解决了,内存使用也降下来了 结论mysqlCluster 自动设置了 innodb-buffer-pool-size 导致内存过高,超过Limit限制,被容器kill,反复重启,事件日志就是心跳连不上了,导致重启。 k8s 上有状态的服务。优点:操作快捷方便,普通开发人员都可以操作。缺点:刚起步,很多方面不够完善,包括文档。碰见问题,需要下源码查具体问题。

苹果公司被指窃取商业机密既抄技术又挖墙脚据彭博社(Bloomberg)8月25日报道,美国医疗器械公司迈心诺(Masimo)CEO乔基亚尼(JoeKiani)近日对外表示,目前该公司针对苹果窃取商业机密的诉讼已进入了一个美国医疗器械公司迈心诺指控苹果公司窃取商业机密抄技术还挖墙脚多年以来,数码界就以苹果出品作为标杆,其设计和技术被誉为全球顶尖,以往有不少厂商是根据苹果的产品来设计自家的产品,并且还能通过借鉴的设计获得不错的市场反馈。但是作为一家巨头公司,苹荣耀X20上手评测6。67英寸超窄边框全视屏66W快充荣耀X系列作为荣耀爆款系列之一,不少用户也在期盼,荣耀X系列到底什么时候回归?没错,这个夏天,它回来了最新发布的荣耀X20会带来什么不凡体验呢?熊姐带大家一起来看看。6。67英寸超阿里聊天工具设计阿里应该出个类似微信一样的产品,把支付宝改造一下,下面五个按钮,消息通讯录发现服务我的。1消息和微信一样可以聊天2通讯录是联系人及订阅号公众号,群聊新朋友等等3发现里包括朋友圈视频挂载阿里云盘为本地磁盘网盘为多类型终端文件传输提供了极大的便利,很多时候我们需要直接在PC上编辑处理文件,将云盘进行挂载,可以像编辑本地文件一样编辑云盘文件。网上存在许多类似教程,但大多为转发,并未验证预算不高只有千元怎么选手机内行人推荐的这几款款款都是高性价比最近很多朋友问我,我预算不高,可能最多也只有千元,那我能买到心仪的手机吗?一般情况下,便宜的东西不好,贵的东西肯定好,这也是中国消费者传统的想法,不过手机就不一样,随着科技的发展,防拆卸司法定位社区矫正腕带4G全网通GPS北斗防拆卸定位追踪器功能1双向通话,SOS紧急呼救,环境听音,远程录音,短信接收2多重精准定位历史轨迹电子围栏3视频通话,拍照(微聊视频通话选配)4IP68深度防水防尘等级5用极致设计征服强迫症用户,魅族18系列这个开学季价格有点香8月已经接近尾声,细数一番国产手机厂商还发布了不少新旗舰,当然在配置的提升的同时价格也是水涨船高。在新机价格太高的情况下,消费者不妨看看上半年的一些旗舰,价格不仅有优势,而且在设计红米k40Pro好不好用?该不该入手?话不多说直接上图跑分是没有问题的,但是因为手机发烫很严重我是对着空调吹测的跑分这是手机平均温度这是我手机的配置配置总的来说配置方面还可以,打游戏流畅运行无压力,原神最高画质不掉帧,微软将在未来五年内投入200亿美元用于网络安全微软计划在未来五年内将网络安全方面的支出翻四番,达到200亿美元。这一承诺是在美国总统乔拜登与几家大型科技公司首席执行官举行安全峰会期间做出的。微软还将提供1。5亿美元的技术服务,华为创始人任正非,管理就是洞察人性,35条深度思考值得收藏在中国,能够被称为企业家教父的人并不多,甚至很少有企业家可以被称之为教父,毫无疑问,华为创始人任正非就是其中之一。有人形容任正非是真正的商业思想家。中国历来都不缺乏政治家企业家,但
宝骏E100与宝骏E200,到底区别在哪儿?许多人都知道五菱的EVmini的大卖,却很少有人知道,早在五菱EVmini诞生前几年,五菱就已经有宝骏E100与E200两款小型电动车产品在售了。他们为后续五菱EVmini爆款的诞高质量纪录片推荐,值得一看作者君佳来源知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。之前听过这样一句话当你决定放弃无效社交,你也会放弃无效的爆米花电影。而无论你喜欢什么类型的影片,买车便宜,养车更便宜!5万元级微型新能源车大PK在本世纪初,微型车市场曾是一个重要的细分市场,诞生了如奇瑞QQ,长安奔奔,铃木奥拓等著名的爆款微型车。时过境迁,随着紧凑型轿车价格的不断下探与消费升级等因素的影响,微型车逐渐淡出了用好官微的批量上传批量管理,办公效率至少提升一倍前不久有一位用户在接受我们回访时曾反应道你们LTD的系统后台确实挺好用的,但我们每次都需要大批量地上传物料,实际操作起来太费时间了,你们没有开发批量处理的功能吗?相信不少使用过LT不会写代码,该怎么让网站更炫一点呢?在绝大多数人的眼里,想要搭建一个网站不算很难,但想要这个网站具备足够的视觉效果就很麻烦了。举个例子,我们可以随便打开某一个大平台的官网,从上往下翻,不管是浏览还是点击时,都会有着相复购率居高不下!揭秘RampampampReno系列成功之道,这几点很关键近日,中国电信公布了2018年Q4至2020年Q3期间的热销手机复购率统计。根据相关数据,OPPORReno系列的复购率一直居高不下,平均达到了27。3,拥有最高的复购率。另外,OColorOS11游戏空间骚操作,秒启动京东双十一买得更快马上就到双11了,关于买买买剁手那点事儿你都计划好了吗?相信所有人都已经把自己想要的宝贝加入购物车,或者是定金都付好了,就差11月11日那天0点付尾款了。可能不少人会有疑问,为什么实战教你掌握网站产品页面布局(下)做独立站的主要目的之一就是增加产品曝光,获取更好的销量,所以产品页面规划的重要性不言而喻。上期实战教你掌握网站产品上传规则(上)介绍了产品发布规则产品分类注意事项产品关键词选择,还门店福音!OPPO加强品牌建设,线下渠道服务大升级国内一线厂商OPPO最近又有新动作。2月1日品牌召开了2020年度大客户答谢会,其中OPPO副总裁中国区总裁刘波在会上发表题为致善以行远,2021携手共创新格局的重磅演讲,宣布将在iPhone12mini官方带头降价,到底可不可以买来用几天前,有报道称苹果正在减少iPhone12mini的生产,并将生产能力转移到iPhone12Pro。所有人都说这并不奇怪,因为确实很少有人购买iPhone12mini。因此,最近游戏机厂商都想照搬!ColorOS新增的游戏滤镜,太强了在近年来,从业手游行业的人员越来越多,手游也越来越到人们的欢迎,尤其是我们90后,席地一座便会拉上朋友五五开黑,许多上班族在下班后也会约上好友来两三盘游戏,放松放松疲劳的身体,释放