阿萍的博客
在多线程之间使用 option 全局变量
全局变量初始化:lazy_static::lazy_static! { static ref VIDEO: Arc<Mutex<Option<Video>>...
rust 安装夜版
rustup toolchain install nightly rustup override set nightly
Rust 中的 quic 实现 --- quinn
1 QUICQUIC 是基于 UDP 的多路复用、安全传输协议。可以简单理解为在用户空间将 TCP 里的机制实现了一遍,比如拥塞控制、流量控制等。好处是升级比较方便,TCP 协议栈是内核中实现的...
Result 的打开方式
1 没有值时发生 panic1.1 expect正确,返回值;否则,中断程序,打印 msg 错误信息。源码pub fn expect(self, msg: &str) -> T {...
Option 的打开方式
1 没有值时发生 panic1.1 expect有值,返回值;否则,中断程序,打印 msg 错误信息。源码pub fn expect(self, msg: &str) -> T {...
套路篇:监控的思路
1 系统监控系统监控需要涵盖系统的整体资源使用情况,比如 CPU、内存、磁盘、文件系统和网络等各种系统资源。1.1 USE 法USE 法把系统资源的性能指标简化为了三个类别,使用率、饱和度和错误...
案例篇:动态追踪怎么用?
使用动态追踪,可以在不修改代码、不重启服务的情况下,动态了解应用程序或者内核的行为,这对排查线上问题、特别是不容易重现的问题尤其有效。Linux 提供了一系列的动态追踪机制,比如 ftrace、...
案例篇:服务吞吐量下降很厉害,怎么分析?
1 现象查看服务性能:# 默认测试时间为 10s,请求超时 2s $ wrk --latency -c 1000 http://192.168.0.30 Running 10s test @ h...
案例篇:内核线程 CPU 利用率太高,我该怎么办?
在排查网络问题时,经常会碰到的一个问题是,内核的 CPU 利用率较高。比如高并发场景下,内核线程 ksoftrqd 的 CPU 使用率就会比较高,是网络收发的软中断导致的。接下来看下如何分析内核...
案例篇:为什么应用容器化后,启动慢了很多?
1 现象一启动容器:# -m 表示设置内存为512MB $ docker run --name tomcat --cpus 0.1 -m 512M -p 8080:8080 -itd feisk...