02 2024 档案

[解决方案] 如何使用 perf 分析 splice 中 pipe 的容量变化
摘要:如何使用 perf 分析 splice 中 pipe 的容量变化 这个文章为了填上一篇文章的坑的,跟踪内核函数本来是准备使用 ebpf 的,但是涉及到了低内核版本,只能使用 kprobe 了。 恰好,在搜索东西的时候又看到了 perf,可以使用 perf probe 来完成对内核函数的跟踪,使用相对 阅读全文

posted @ 2024-02-29 19:21 文一路挖坑侠 阅读(167) 评论(0) 推荐(3) 编辑

[问题分析] 记一次 splice 导致 Go io.Copy 阻塞的排查过程
摘要:记一次 splice 导致 Go io.Copy 阻塞的排查过程 简而言之,net.TCPConn 的 ReadFrom 零拷贝实现 splice 在 1.21.0 - 1.21.4 删除了 SPLICE_F_NONBLOCK 参数,导致在 CentOS7.9(内核版本 3.10.0.0) 上 sp 阅读全文

posted @ 2024-02-26 12:26 文一路挖坑侠 阅读(477) 评论(0) 推荐(2) 编辑

[Go] 使用 cmux 或 smux 对 TCP 连接进行复用
摘要:使用 cmux 或 smux 对 TCP 连接进行复用 只写一下如何使用,不对实现进行大量描述,两个库的代码都比较精炼,花一会看一下就行。 cmux 对端口进行复用,单端口可以建立不同协议的连接(本质都是 TCP),如 TCP/TLS/HTTP/gRPC 或自定义协议 smux 对TCP连接复用,单 阅读全文

posted @ 2024-02-22 18:10 文一路挖坑侠 阅读(514) 评论(0) 推荐(1) 编辑

[解决方案] 如何在 libevent 中读取超过 4096 字节的数据
摘要:如何在 libevent 中读取超过 4096 字节的数据 bufferevent 是 libevent 中相对高层的封装,较 event 使用起来方便很多。 之前有一个需求,需要从服务端读取数据进行操作,为了防止数据过大,在 bufferevent 的 read_callback 中循环调用 bu 阅读全文

posted @ 2024-02-21 18:31 文一路挖坑侠 阅读(389) 评论(0) 推荐(3) 编辑

[C++] 如何基于 spdlog 在编译期提供类 logrus 日志接口
摘要:如何基于 spdlog 在编译期提供类 logrus 的日志接口 实现见 Github,代码简单,只有一个头文件。 前提 几年前看到戈君在知乎上的一篇文章,关于打印日志的一些经验总结; 实践下来很受用,在 golang 里结构化日志和 logrus 非常契合,最常见的使用方式如下。 logrus.W 阅读全文

posted @ 2024-02-07 16:23 文一路挖坑侠 阅读(242) 评论(0) 推荐(1) 编辑

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

统计

点击右上角即可分享
微信分享提示