- 博客(60)
- 收藏
- 关注
原创 网损仪详解
**网损仪**(Network Impairment Emulator)是一种用于模拟真实网络环境中各种异常条件和性能损耗的测试工具,主要应用于网络设备、协议、应用程序的**可靠性、稳定性和性能测试**。它通过人为引入网络损伤(如延迟、丢包、抖动、带宽限制等),帮助开发者验证系统在复杂网络环境下的表现。
2025-03-27 15:20:48
420
原创 top命令显示iowait (wa)非常高时怎么排查
当top命令显示非常高时,表示系统正在等待 I/O 操作完成。要确定是磁盘 I/O 还是网络 I/O 导致的等待,可以使用以下工具和方法进行进一步排查。
2025-02-19 23:15:36
398
原创 top命令输出内容详解
us和sy反映 CPU 的繁忙程度。wa反映 I/O 瓶颈。id反映系统空闲程度。st反映虚拟化环境中的资源竞争。通过分析这些指标,可以快速了解系统的 CPU 使用情况和性能瓶颈。
2025-02-19 23:13:08
401
原创 C++的位域特性如何控制对齐系数alignment
在 GCC 中,位域的对齐系数(alignment)通常是由编译器根据结构体内的元素类型自动决定的。不过,可以使用某些编译器选项和与结构体相关的属性来影响对齐方式。
2024-09-26 11:08:22
332
原创 TCP详细图解(滑动窗口、TCP 重传、流量控制、拥塞控制等)
前面的流量控制例子,我们假定了发送窗口和接收窗口是不变的,但是实际上,发送窗口和接收窗口中所存放的字节数,都是放在操作系统内存缓冲区中的,而操作系统的缓冲区,会。那么,当发生窗口关闭时,接收方处理完数据后,会向发送方通告一个窗口非 0 的 ACK 报文,如果这个通告窗口的 ACK 报文在网络中丢失了,那麻烦就大了。接着,就重新开始慢启动,慢启动是会突然减少数据流的。这会导致发送方一直等待接收方的非 0 窗口通知,接收方也一直等待发送方的数据,如不采取措施,这种相互等待的过程,会造成了死锁的现象。
2024-09-02 17:24:35
1962
原创 探究一个数据包在网络中的历程
面试最常见问题想必不少小伙伴面试过程中,会遇到「当键入网址后,到网页显示,其间发生了什么」的面试题。还别说,这真是挺常问的这题,前几天坐在我旁边的主管电话面试应聘者的时候,也问了这个问题。
2024-09-02 17:14:10
1442
原创 分布式哈希表DHT和Kademlia算法详解
Kademlia是分布式哈希表(Distributed Hash Table, DHT)的一种。而DHT是一类去中心化的分布式系统。在这类系统中,每个节点(node)分别维护一部分的存储内容以及其他节点的路由/地址,使得网络中任何参与者(即节点)发生变更(进入/退出)时,对整个网络造成的影响最小。DHT可以用于构建更复杂的应用,包括分布式文件系统、点对点技术文件分享系统、合作的网页高速缓存、域名系统以及实时通信等。
2024-08-07 15:31:14
1102
原创 纠删码EC和RS RLNC的比较
RLNC(Random Linear Network Coding,随机线性网络编码)、EC(Erasure Coding,擦除编码)和RS(Reed-Solomon Code,里德-所罗门码)都是信息论和编码理论中的技术,主要用于提高数据传输的可靠性和效率。而RLNC则是一种更高级的网络传输策略,利用线性组合数据包的思想来提升网络的传输效率和可靠性,它可以看作是一种更广泛意义上的编码技术,在网络层面上应用了类似EC的理念,但实现机制更为复杂和灵活。
2024-07-26 15:04:30
567
原创 Solana介绍
Solana 是一个高速、低延迟和可扩展的区块链平台,通过其独特的技术创新,如Proof of History (PoH)、Tower BFT共识和高效数据传播协议,极大地提升了交易处理能力和效率。尽管面临去中心化和安全性等挑战,Solana 仍然通过其强大的生态系统和广泛的应用前景,展现出巨大的潜力。它为去中心化应用和加密货币提供了一个高性能、低成本的基础设施,吸引了大量开发者和用户的参与。
2024-07-17 11:27:59
1495
原创 解决yum安装错误:Couldn‘t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
这个配置告诉YUM,这个repository的GPG key存在于磁盘上。而当YUM在路径 /etc/pki/rpm-gpg 下找不到这个GPG key的时候,就会报如上的错误了。安装epel的方法是: yum install -y epel-release。有些包是需要先安装epel之后才能装上的。然后再次运行 yum 命令就可以成功了。
2024-07-04 10:43:43
967
原创 Linux上systemctl 和 service 两个命令的区别和联系
systemctl和service两个命令都是 Linux 系统中用于管理服务的工具,但它们分别关联着不同的初始化系统(init system),并且在功能和使用场景上有所差异。service。
2024-07-03 10:33:39
1878
原创 k8s的daemonset里判断CRD资源里定义的NodeSelector是否包含本节点
k8s的daemonset里判断CRD资源里定义的NodeSelector是否包含本节点
2024-06-25 10:35:11
520
1
原创 helm chart里优雅的定义k8s容器的启动命令行
在 Helm Chart 中定义容器的启动命令行时,确实可以直接写整个命令行,但需遵循 Helm 的模板语法。Helm 使用 Go 的文本模板语言来动态生成 Kubernetes 配置文件,这意味着你需要将完整的命令行字符串放在双大括号{{ }}内,并且可能需要使用转义或连接符来确保特殊字符被正确处理。例如,如果你想要设置容器的command和args,你可以在文件中定义它们,然后在(或对应的 Kubernetes 资源模板文件中)使用.Values来引用这些值。
2024-06-25 10:30:26
582
原创 golang封装一个执行命令行的函数(return stderr/stdout/exitcode)
golang封装一个执行命令行的函数,可以直接返回stderr, stdout, 退出码等。
2024-06-25 10:21:51
1161
原创 Kubernetes 调度Pod 时遇到的磁盘压力问题node.kubernetes.io/disk-pressure
Kubernetes 调度Pod 时遇到的磁盘压力问题node.kubernetes.io/disk-pressure
2024-06-25 10:16:48
2130
1
原创 x86_64平台通过qemu-user-static 运行arm64的docker镜像
在x86_64平台通过qemu-user-static运行arm64的docker镜像
2024-06-17 15:34:14
2193
原创 Docker 镜像库国内加速的几种方法
这里提供几个当前可用的镜像仓库,更新到/etc/docker/daemon.json即可。在国内,拉取 Docker 镜像速度慢 / 时不时断线 / 无账号导致限流等,比较痛苦。的 Github Action 执行结果。
2024-06-15 10:48:26
11119
2
原创 std::unique_lock 和 std::lock_guard的比较
简而言之,如果你需要更简单的锁管理(例如 RIIA 风格的自动锁定和解锁),并且不需要中间解锁或只是想要自动锁定和解锁机制,那么是一个好选择。如果你需要更复杂的互斥锁操作,比如延迟锁定、手动解锁/锁定或与条件变量一起使用等,则应该使用。在性能敏感的代码中,如果不需要的额外功能,则推荐使用。
2024-05-13 19:05:08
636
原创 Keepalived和conntrackd介绍
keepalived和connrackd介绍。使用conntrackd切换连接的时候,client侧的TCP连接会断掉么
2024-04-28 15:52:47
1018
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人