会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
吱吱吱 (piperck) XD
Be more cautious.
github.com/piperck
weibo.com/pieprck
博客园
首页
新随笔
联系
订阅
管理
2024年12月10日
Rust 世界中主流的异步运行时性能测试 Tokio/Tokio-uring/MonoIO/GlommIO
摘要: 太长不看 在 ping-pong 场景下,Tokio-uring、MonoIO 和 GlommIO(基于 thread-per-core 和 io-uring 模型)并未表现出比 Tokio 显著更强的性能。 Tokio 展现了强大的生态能力,具有高度的稳定性、丰富的文档、健壮的语法以及出色的可读性
阅读全文
posted @ 2024-12-10 20:29 piperck
阅读(338)
评论(0)
推荐(0)
2023年11月15日
使用 promethus 指标在 grafana 上创建 dashboard 的一些疑问记录
摘要: 我用几个例子一步一步拆解一些常用的写法和指标。 例子一 这里我有一个需求是计算我的程序,每处理 1Gb 数据需要使用多少 CPU 时间。 (increase(container_cpu_usage_seconds_total{cluster="$cluster", namespace="$names
阅读全文
posted @ 2023-11-15 14:54 piperck
阅读(364)
评论(0)
推荐(0)
2023年8月14日
Kubernets pod 过快退出引起的无法平滑滚动重启的问题
摘要: 平时在使用 kubernets 的时候我们会使用滚动更新策略,滚动更新确保了我们新的 pod 实例逐步替换旧的 pod 实例从而确保重启期间服务不会中断。 举个例子: 有一个 gateway 程序一直在接受客户端请求,这时我们需要升级 gateway 的程序。在更新代码之后我们需要对 gateway
阅读全文
posted @ 2023-08-14 16:20 piperck
阅读(154)
评论(0)
推荐(0)
【转】Rust anyhow & thiserror
摘要: Rust 中使用 std::result::Result 表示可能出错的操作,成功的时候是 Ok(T),而出错的时候则是 Err(E): pub enum Result<T, E> { Ok(T), Err(E), } 通常情况下,E 是实现 std::error::Error 的错误类型: pub
阅读全文
posted @ 2023-08-14 13:19 piperck
阅读(324)
评论(0)
推荐(0)
2023年7月12日
Rust 内存 profling 之旅
摘要: 首先如果你使用的 macos,那么要做的第一件事情是找个 linux 的机器,要么服务器,要么搞个 docker 用。不要用 macos 进行下面的操作,因为会有各种各样难以 debug 的问题。 1. 下面先说下代码部分的一些改动。首先我们需要确保 Rust 程序设置一些 Debug 模式,可以让
阅读全文
posted @ 2023-07-12 01:22 piperck
阅读(1037)
评论(0)
推荐(0)
2023年7月7日
在 kubernets pod 里使用 perf 直接调试 rust 程序
摘要: 我们想要了解我们程序在运行时候的真实情况,但是感觉 rust 性能方面的调试真的比 go 麻烦非常多。 首先在 rust cargo.toml 中添加 [profile.release] debug = true Profiling CPU 直接在 pod 里面进行调试限制比较多,首先我们可能需要安
阅读全文
posted @ 2023-07-07 18:25 piperck
阅读(138)
评论(0)
推荐(0)
2023年6月30日
引用 github.com/segmentio/kafka-go v0.4.39 出现的 copy 队列溢出的问题
摘要: 在高并发 (40k~60k) rps 的情况下,github.com/segmentio/kafka-go v0.4.39 该库频繁出现 panic: runtime error: slice bounds out of range [:4636] with capacity 4096 gorout
阅读全文
posted @ 2023-06-30 17:40 piperck
阅读(171)
评论(0)
推荐(0)
2023年4月26日
引用 maxmind golang 库导致的程序无法 recover crash 的问题
摘要: 新做的 Gateway 程序打算使用一个 maxmind 第三方库来解析地理信息,想了一下比较简单找了一个库直接使用。 项目跑了一天得到了一堆 panic,程序崩溃超过 1s 丢了不少数据。 从 stack 信息可以看到调用 amxminddb-golang 这个库的 readLeft 出现了错误,
阅读全文
posted @ 2023-04-26 12:02 piperck
阅读(119)
评论(0)
推荐(0)
2023年3月22日
使用 go tool pprof 跟踪优化 cpu 和 内存
摘要: 搜了一些文章来看 实在是没有重点,自己归纳一下。 其实直接看文档已经比较清楚但是文档部分似乎没有一些介绍如何看火焰图之类的细节,这里一并归纳总结一下。 收集性能数据 在看数据之前首先要收集数据,我们需要在需要测试性能的代码中插入 pprof 库和启动一个 http server。 这个 server
阅读全文
posted @ 2023-03-22 20:19 piperck
阅读(990)
评论(0)
推荐(0)
2023年3月8日
【转】Golang base64 解码碰到的坑
摘要: 背景 在一次调用三方API的时候,为了数据安全和三方API的请求和返回信息都用了rsa加密,由于rsa算法生成的内容是二进制的,所以需要用base64编码将二进制数据转化成64个可打印字符进行通信或者存储。在获取到三方的base64编码的返回信息后,解码碰到了各种问题,如下是日志里打印的三方的一个b
阅读全文
posted @ 2023-03-08 16:46 piperck
阅读(2969)
评论(1)
推荐(0)
下一页
公告