《性能之巅》读书笔记(一)
《性能之巅:洞悉系统、企业与云计算》读书笔记(一)
云计算
云计算把计算资源作为一项可交付的服务,可从一个服务器的一小部分扩展为跨越多个服务器的系统。
云计算描述了一个动态的服务器实例供应框架。多个服务器实例以一个物理宿主系统的访客身份运行。访客也称为租户,多租户用来描述它们对它们邻居的影响。宿主由云运营商管理,访客(租户)由购买它们的顾客管理。
虚拟化技术
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 延时的增加。
Subscribe to bbbiggest's blog
Get the latest posts delivered right to your inbox