Garry's Blog

Thoughts & Notes

记录技术与生活的碎片

其他文章

KVM API 简介

以下笔记来自阅读:https://www.kernel.org/doc/Documentation/virtual/kvm/api.txt 1. 基本描述 KVM API 本质上是为了控制虚拟机的方方面面而下发的一组ioctl,这些ioctl可以划分为四类: - system ioctl: 对影响整个KVM系统的属性进行查询或设置。创建虚拟机就是其中的一个系统ioctl。 - vm ioctl...

阿里云SIGCOMM22论文阅读

阿里云在今年的网络顶会SIGCOMM上发表了一篇论文:"From Luna to Solar: The Evolutions of the Compute-to-Storage Networks in Alibaba Cloud"。 该文章介绍了阿里云在EBS存储的应用背景下,计算节点和存储节点间网络通信的演进过程。由于文中介绍的网络架构已经在阿里云内部大范围应用,对于同样提供EBS服务的云厂商来...

x86指令集架构

以下笔记来自阅读:x86 Instruction Set Architecture - MindShare 本文以Intel处理器作为阐述目标。AMD处理器差异点可以参考: Agner Fog Microarchitecture     在“指令集架构 "一文中,我们粗略介绍了指令集架构的分类、寻址、操作、编码等7个方面的内容。下面我们对服务器及PC中使用最广泛的x86指令集架构做详细介绍...

Linux内核引导

以下笔记来自阅读:https://www.kernel.org/doc/html/latest/x86/boot.html Linux/x86 引导协议     在x86平台上,Linux使用一个很复杂的引导协议。形成这种状况的原因有很多,包括:各种历史原因、早期期望内核本身就是一个可以启动的 image、复杂的PC内存模型、以及实模式消亡后PC工业界的变化等等。     目前,存在如下版本...

指令集架构

以下笔记 来自阅读:Hennessy J L, Patterson D A. Computer Architecture: A Quantitative Approach 6th Edition. 2019. 指令集架构指代程序可见的指令集,也是软件和硬件的分界线。下面以实际的例子说明指令集架构的具体7个方面: - 指令集架构的分类:几乎所有今天的ISA都被归类为通用寄存器架构,其操作数不是寄存器...

KMP算法

以下笔记来自阅读:Knuth D E , Morris J H , Pratt V R . Fast Pattern Matching in Strings[J]. Siam Journal on Computing, 1977, 6(2):323-350.     文本编辑器软件经常需要在一串字符中查找以匹配特定的模式,这些模式也是一串字符,我们有时需要查找到所有匹配的位置,也有时候,仅仅需...

硬件虚拟化

在“虚拟化技术概念及分类 ”一文中,从应用程序的角度,将虚拟化技术分为: 硬件虚拟化、操作系统级虚拟化和程序库级虚拟化三类。本文将对硬件虚拟化的概念、发展历史做展开描述。 硬件虚拟化是对计算机硬件环境的虚拟,其上支持多种操作系统并发执行。在描述硬件虚拟化之前,先来了解一下计算机的硬件环境。 计算机硬件环境 当前服务器均基于Modified Harvard架构,其简化结构如下: 中央处理器:执行特...

虚拟化技术概念及分类

虚拟化是一种让人着迷的技术,其知识背景贯穿底层硬件到上层应用,也是目前云计算服务的基础。本文及后续文章,期望通过“虚拟化简介”这一系列,管中窥豹,将虚拟化技术的魅力阐述一二,也算是对自己多年工作的一个总结。 在展开描述虚拟化之前,有必要对虚拟化的概念和技术分类做通盘的介绍: 什么是虚拟化? 虚拟化,即是创建真实事物的虚拟版本,在计算机世界里,这些真实事物可以是计算机硬件平台、存储设备和网络资源等...

在线迁移后虚拟机CPU利用率飙升问题分析

提供虚拟机服务的过程中,遇到了如下问题: 现象1:在线迁移前,虚拟机运行正常,迁移之后,虚拟机内用户态程序CPU占用飙升,甚至打满整个虚拟机。 现象2:虚拟机内CPU占用集中在用户态,关闭程序后虚拟机CPU使用率下降,启动程序可复现问题。 现象3:冷启动虚拟后,启动程序,问题消失。 该问题多次出现,升级宿主机到高版本内核问题消失,最终通过缩小范围,发现打入如下内核Patch后问题解决。 1...