/ NOTES

《性能之巅》读书笔记(一)

《性能之巅:洞悉系统、企业与云计算》读书笔记(一)

云计算

云计算把计算资源作为一项可交付的服务,可从一个服务器的一小部分扩展为跨越多个服务器的系统。

云计算描述了一个动态的服务器实例供应框架。多个服务器实例以一个物理宿主系统的访客身份运行。访客也称为租户,多租户用来描述它们对它们邻居的影响。宿主由云运营商管理,访客(租户)由购买它们的顾客管理。

虚拟化技术

OS 虚拟化:由单个内核管理系统,创建各自独立的虚拟 OS 实例。

硬件虚拟化:是一个 hypervisor ,管理多个访客操作系统,每个访客在虚拟设备上运行自己的内核。有两种类型的虚拟机管理程序

  • 1 型,包括了自带的用于客户 VM 的 CPU 调度器,也称为本地虚拟机管理程序或者裸机虚拟机管理程序。直接运行于处理机上,并且不属于其他宿主的内核或用户软件。
  • 2 型,由宿主内核调度器调度。由宿主 OS 内核运行并且可能由内核级模块和用户级进程组成。

性能属性比较

属性 OS 虚拟化 硬件虚拟化,1型 硬件虚拟化,2型
CPU性能 高(需要 CPU 支持) 高(需要 CPU 支持)
CPU 分配 灵活 (FSS + “bursting”) 固定在 vCPU 极限 固定在 vCPU 极限
I/O 吞吐量 高(无内在的开销) 低或适中(需要半虚拟化) 低或适中(需要半虚拟化)
I/O 延时 低(无内在的开销) 通常有一些( I/O 代理开销) 通常有一些( I/O 代理开销)
内存访问开销 一些( EPT/NPT 或者影子页面表) 一些( EPT/NPT 或者影子页面表)
属性 OS 虚拟化 硬件虚拟化,1型 硬件虚拟化,2型
内存损失 一些(额外的内核,页面表) 一些(额外的内核,页面表)
内存分配 灵活(未使用的客户机内存用于文件系统高速缓存) 固定(并且有可能双重缓冲) 固定(并且有可能双重缓冲)
资源控制 许多(依 OS 而不同) 一些(依 hypervisor 而不同) 大部分 (OS + hypervisor)
主机上的可观测性 最高(一切都可见) 低(资源使用, hypervisor 统计信息) 中(资源使用, hypervisor统计信息,从 OS 审查 hypervisor )
客户机上的可观测性 中(一切允许的,包括一些物理资源状态) 低(仅限客户机) 低(仅限客户机)
hypervisor 复杂性 低(OS 分区) 高(复杂的 hypervisor )
不同 OS 的客户机 通常不支持(一些情况下可以使用系统调用翻译)

检查资源控制的策略

首先分析资源控制,然后检查物理资源。

  • CPU:对于 CPU 帽,当前的 CPU 使用率可以与帽值对比。达到帽值会导致线程处于运行状态等待,这可以通过调度延时来观测。不过要注意,物理系统可能有大量闲置 CPU。
  • 内存:对于主存,与上限比较当前的用量。一旦达到上限,会产生 zoneadmd 的换页。有可能因匿名换页以及消耗于数据缺页的线程时间而被察觉。要注意的是,系统页面可能是不活动的( vmstat 看不到 sr ),并且物理系统可能有大量空闲内存。
  • 文件系统 I/O磁盘 I/O:高速率的 I/O 可能被流控,导致平均延时少量增加。这可以用 Vfsstat (1M) 工具观测到。
  • 文件系统容量:这应该能像任何其他文件系统一样观测(包括使用 df (1M) )。
  • 网络 I/O:如果设置过,比较带宽上限和当前的网络吞吐率。租户到达上限而被限制到上限,可能导致网络 I/O 延时的增加。