笔记:GO1.19 带来的优化(重新编译juicefs)

news/2024/5/20 20:39:25

## 背景

go编写的应用程序(juicefs)在k8s(docker)中运行,时不时出现 OOM Killed。

## 分析

发现某些应用使用juicefs会导致内存使用飙升;

k8s的pod给的内存资源:request 2G,limit 5G;

到内存使用到达5G的时候,就会出现OOM;

## 解决

使用 go 1.19 重新编译(juicefs),并且在进程启动的pod中设置环境变量 GOMEMLIMIT

GOMEMLIMIT=2048MiB

将内存限制在2G,解决OOM Kill的问题;

## 参考

go1.19 内存优化的具体技术细节参考如下:

Go 1.19中值得关注的几个变化: Go 1.19中值得关注的几个变化 | Tony Bai

## TODO

排查内存占用过高的原因

## 注

对于juicefs而言(静态pv挂载方式),则是修改secret

kxyb -n juicefs-system create secret generic juicefs-secret-zmc-test \--from-literal=name="zmc-test" \--from-literal=metaurl="tikv://node1.juicefs-tikv.sys.xxx.com:2379,node2.juicefs-tikv.sys.xxx.com:2379/zmc-test" \--from-literal=storage="OSS" \--from-literal=bucket="http://juicefs.shanghai.oss.aliyun.xxxx.com" \--from-literal=access-key="xxxxx" \--from-literal=secret-key="xxxxx" \--from-literal=appid="100012345" \--from-literal=token="xxxx" \--from-literal=envs="{GOMEMLIMIT: 2048MiB}"


https://www.xjx100.cn/news/3293457.html

相关文章

括号生成(力扣题目22)

题目描述: 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n 3 输出:["((()))","(()())","(())()&q…

安装ansys2024第一步安装ansys license manager遇到错误

这里写自定义目录标题 安装ansys2024时候遇到很多次错误,错误log如下 netstat -ano | findstr 1084 任务管理器里面禁用intel这个自动启动项目,关机重启即可

Python多层嵌套的dict递归解析

Python多层嵌套的dict递归解析 1.问题 遇到多层嵌套的dict ,如何能解析为只有一维的dict ,方便后续数据处理。 一个嵌套的dict : AutoOrderedDict([(total,AutoOrderedDict([(total, 9), (open, 1), (closed, 8)])),(streak,AutoOrderedDi…

单例模式:饿汉式、懒汉式;线程安全的单例模式创建的6种方式

单例模式 单例模式Singleton是一种创建型模式,指某个采用Singleton单例模式,则这个类在同一个 JVM上,只能产生一个实例供外部访问,并且仅提供一个全局的访问方式。 懒汉式 懒汉式线程不安全 public class Singleton1 {privat…

HTTP1.0,HTTP1.1,持久连接,非持久连接,TCP,UDP,三次握手和四次挥手,HTTP与HTTPS,对称加密和非对称加密,状态码

HTTP1.0和HTTP1.1的区别 HTTP1.0HTTP1.1连接方式非持久连接持久连接缓存 主要使用 header 里的 If-Modified-Since、Expires 来做为缓存判断的标准 引入了更多的缓存控制策略,例如 Etag、If-Unmodified-Since、If-Match、If-None-Match 等更多可供选择的缓存头来控…

为何要使用流媒体服务器

安防系统中,我们偶尔会遇到“流媒体服务器”这个词,那么为什么需要这个服务呢? 视频监控 我们知道,监控摄像机的工作原理就是将自然界的光影,通过摄像机镜头对焦到“靶芯”(CMOS),实…

Qt中常见的JS类和函数(二): 全局对象

Qt专栏: http://t.csdnimg.cn/YLlEd 相关系列文章 Qt中字符串转换为JS的函数执行 Qt中常见的JS类和函数(一): 全局对象 Qt中常见的JS类和函数(二): 全局对象 目录 2.3.构造函数属性 2.3.1.Object 2.3.2.Function 2.3.3.Array 2.3.4.ArrayBuffer 2.3.5.String …

LeetCode19. 删除链表的倒数第 N 个结点(C++)

LeetCode19. 删除链表的倒数第 N 个结点 题目链接代码 题目链接 https://leetcode.cn/problems/remove-nth-node-from-end-of-list/description/ 代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : …