zerolog 占大量内存剖析

分析过程 使用 pprof top分析 可见 json.Marshal占第一内存. 为什么呢? 我们进一步分析 使用 tree 分析 查看到 zerolog AppendInterface 方法占用 73.32%的内存量. 而

Redis 性能分析

查看 Clients 属性 1 127.0.0.1:6379>info clients 1 2 3 4 5 # Clients connected_clients:1 # 已连接客户端的数量(不包括通过从属服务器连接的客户端) client_recent_max_input_buffer:2 # 当前连接的客户端当中,最长的输出列表 client_recent_max_output_buffer:0 # 当前连接

Golang 单元测试/性能测试

参考 Go 单元测试/性能测试 性能测试 1 go test -test.bench=. -test.benchmem 指定方法 1 go test -test.bench=MyFunc -test.benchmem cpu 性能分析 1 go test -test.bench=MyFunc -test.cpuprofile cpu.out 内存分析 1 go test -test.bench=MyFunc -test.memprofile mem.out goroutine 阻塞分析 1 go test -test.bench=MyFunc -test.blockprofile block.out ### 指定几个cpu

io.ReadAll优化

解析方案 1 2 3 4 5 6 7 8 9 10 11 12 13 14 // 替换 ioutil.ReadAll func ReadAll(data io.ReadCloser) (body []byte) { buffer := bytes.NewBuffer(make([]byte, 0, 65536)) io.Copy(buffer, data) temp := buffer.Bytes() length := len(temp) if cap(temp) > (length + length/10) { body = make([]byte, length) copy(body, temp) } else { body = temp } return } 参考 [gola

Top

top 是 linux 最常用的命令, 包括很多少直观的信息, 有利于我们对系统运行状态的把握. top 使用 top 系统自带命令,可以直接使用. 1 top top 详情 a. 如图编号(1) 1 top

MySQL 性能优化

MySQL 并发参数调整 max_connections 参数 该参数设置mysql连接最大数量. max_connections 默认151个连接. 1 show variables like 'max_connections' 服务器性能优时可以调节这个参数, 范围: 500~1000 注 当连接过大时,

MySQL 性能分析

MySQL 运行的状态 重点关注以下参数 1 2 3 4 show status like 'Queries'; show status like 'Threads_connected'; show status like 'Threads_running'; show status like 'Connection_errors_max_connections'; MySQL 运行线程 1 show processlist 开启慢查询日志 在配置文件 my.cnf 中的 [mysqld] 添加以下参数 1 2 3 4 slow_query_log =

Systemctl使用与自定义

systemctl 命令的使用 启动 1 systemctl start redis 停止 1 systemctl stop redis 重启 1 systemctl restart redis 状态 1 systemctl status redis 自定义配置 新建 systemctl 文件 以 redis 服务为例 1 2 touch /lib/systemd/system/redis.service vim /lib/systemd/system/redis.service 配置文件 vim /lib/systemd/system/redis.service 1 2 3 4 5 6 7 8 9 10 11 12