OMM
服务 OOM 排查指南:从现象到根因的系统分析与解决 - 五岁博客 一、OOM 典型现象 OOM(Out of Memory)即内存溢出,指服务进程所需内存超过系统或容器分配的最大限制,被内核的 OOM Killer 强制终止,或因内存耗尽主动崩溃。 服务进程消失: ps 或 top 命令看不到对应的进程了。 日志中断: 应用日志在某个时间点突然停止...
服务 OOM 排查指南:从现象到根因的系统分析与解决 - 五岁博客 一、OOM 典型现象 OOM(Out of Memory)即内存溢出,指服务进程所需内存超过系统或容器分配的最大限制,被内核的 OOM Killer 强制终止,或因内存耗尽主动崩溃。 服务进程消失: ps 或 top 命令看不到对应的进程了。 日志中断: 应用日志在某个时间点突然停止...
性能分析类型 CPU 性能分析 CPU 性能分析(CPU profiling) 是最常见的性能分析类型。 启动 CPU 分析时,运行时(runtime) 将每隔 10ms 中断一次,记录此时正在运行的协程(goroutines) 的堆栈信息。 一个函数在性能分析数据中出现的次数越多,说明执行该函数的代码路径(code path)花费的时间占总运行时间的比重越大。 内存性能分析 内...
内存泄露 对于一个channel来说,如果没有任何goroutine(轻量级线程)引用,gc会对其进行回收,不会引起内存泄露。 // goroutine go func() { fmt.Println("hello from a goroutine") }() 而当goroutine处于接收或发送阻塞状态,channel处于空或满状态时,一直得不到改变,gc则无法回收这类一直...
创建 //1.make函数创建 (推荐) 切片名称 := make([]切片类型, 0, 指定容量) //2.创建同时初始化 (有确定的数据时推荐) var 切片名称 = []切片类型{} //3.var常量定义 (不推荐) var 切片名称 [] 切片类型 修改 值类型切片 → 必须拿索引才能改 指针切片 → 循环变量本身就是原对象地址,直接改即可 // 必须按索引修改 d...
hash HDEL hash:jd:goods:sync_tag 66d280dfdde84a769c2550b HSET hash:jd:goods:sync_tag 66d280dfdde84a769c2550b "2025-05-16 11:38:38" HSET user:profile:10086 name "张三" age 29 vip 1 ┌-----------------...
总结 Go 类型特征 tag 出现的关键字 生成的 TOML 备注 非匿名 struct 无 squash [xxx] 字段继续往下写 匿名 struct ,squash 没有 [xxx],...
函数 定义函数 func 函数名字 (参数列表) (返回值列表){ // 函数体 return 返回值列表 } 注意: 函数名首字母小写为私有,大写为公有; 参数列表可以有0-多个,多参数使用逗号分隔,不支持默认参数; 返回值列表返回值类型可以不用写变量名 如果只有一个返回值且不声明类型,可以省略返回值列表与括号 如果有返回值,函数内必须有return ...
接口 接口 = 定义方法集 type FImpl interface { f1() f2() f3() f4() } 实现 结构体实现遵循规则: 结构体T方法为值接收者方法: T 和 *T 都可以赋给接口 结构体T方法为接收者方法: 只有 *T 可以赋给接口 接口类型前面永远不要加 * (接口用值,不加星;加星就废,没...
📌 结论 值接收者方法: T 和 *T 都可以赋给接口 指针接收者方法:只有 *T 可以赋给接口 接口类型前面永远不要加 * (接口用值,不加星;加星就废,没方法) 示例1: type F interface { f() } type S1 struct{} func (s S1) f() {} // 值接收者方法,属于 S1 的值...
镜像拉取策略 值 含义 Always 每次启动容器时都尝试拉取镜像(忽略本地缓存)。 IfNotPresent 如果本地已有该镜像,重启 Pod 时则不拉取;否则拉取。 Never 只使用本地镜像,绝不...