阿萍的博客

阿萍的博客

在多线程之间使用 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...