概述

有很多时钟源可用于硬件虚拟机 (HVM) 实例,例如 Xen、时间戳计数器 (TSC)、高精度事件时间 (HPET) 或高级配置和电源接口规范 (ACPI)。对于windows虚拟机 ,最佳实践是使用 tsc 时钟源。

1.列出宿主机时钟源,查看available_clocksource:

cat /sys/devices/system/clocksource/clocksource0/available_clocksource
tsc hpet acpi_pm

2.将当前时钟源设置为不同的值

  • 作为超级用户运行 bash 以覆盖 current_clocksource:
sudo bash -c 'echo tsc > /sys/devices/system/clocksource/clocksource0/current_clocksource'
  • 运行 dmesg 命令查看内核消息:
dmesg | less

如果覆盖成功,将显示此消息:
clocksource: Switched to clocksource tsc

注意:重启系统会导致 Linux 内核重置时钟源。

3.在系统启动加载程序期间设置时钟源

  • 在内核命令行参数中设置 clocksource。
    例如: 如果使用 grub2 并且您想要将时钟源设置为“tsc”,请编辑 /etc/default/grub 文件,并为 GRUB_CMDLINE_LINUX 选项添加 clocksource=tsc tsc=reliable:
GRUB_CMDLINE_LINUX="console=tty0 crashkernel=auto console=ttyS0,115200 clocksource=tsc tsc=reliable"
  • 生成 grub.cfg 文件:
grub2-mkconfig -o /boot/grub2/grub.cfg

4.rating:时钟源的精度

同一个设备下,可以有多个时钟源,每个时钟源的精度由驱动它的时钟频率决定,比如一个由10MHz时钟驱动的时钟源,他的精度就是100nS。clocksource结构中有一个rating字段,代表着该时钟源的精度范围,它的取值范围如下:

1--99: 不适合于用作实际的时钟源,只用于启动过程或用于测试;
100--199:基本可用,可用作真实的时钟源,但不推荐;
200--299:精度较好,可用作真实的时钟源;
300--399:很好,精确的时钟源;
400--499:理想的时钟源,如有可能就必须选择它作为时钟源;

linux-4.0.4/arch/x86/kernel/kvmclock.c,kvm-clock的rating是400;
linux-4.0.4/arch/x86/kernel/tsc.c中,tsc的rating是300;
linux-4.0.4/arch/x86/kernel/hpet.c中,hpet的rating是250;
linux-4.0.4/drivers/clocksource/acpi_pm.c中,acpi_pm的rating是200;
linux-4.0.4/drivers/clocksource/i8253.c中,pit的rating是110。

综上,Linux大致实现了clocksource的管理框架,各个timer实现自己的drvier,并注册到clocksource中。根据rating来看timer的性能:kvmclock>tsc>hpet>acpi_pm>pit

参考:
How to change the clock source in the system
为什么guest虚拟机需要精确的时钟
clocksource的管理和虚拟化
Linux时间子系统之一:clock source(时钟源)

如何管理kvm虚拟机的时钟源相关推荐

  1. RHEL6.2上使用 libvirt创建和管理KVM虚拟机

    在2010年4月发布的RHEL 6.0 Beta版中 ,去掉了Xen,这也许是第一个不包含Xen Hypervisor的知名Linux发行版,之前有报道过Red Hat有可能会在RHEL 6.0中用K ...

  2. linux命令行模式kvm,Linux命令行管理KVM虚拟机【一】 | C/C++程序员之家

    Linux命令行管理KVM虚拟机,几个常见的Linux-KVM虚拟机 管理命令,保存备用,方便快速部署搭建Linux开发环境,搞来搞去还是Linux下虚拟化好使,方便Linux和Win! virsh ...

  3. CentOS7 安装管理KVM虚拟机

    为什么80%的码农都做不了架构师?>>>    系统:CentOS7 64位 [root@e3 ~]# cat /etc/redhat-release CentOS Linux re ...

  4. virsh 关机_使用virsh管理KVM虚拟机

    使用QEMU/KVM虚拟化平台启动虚拟机,通常需要手动输入一行很长的命令,里面可能有几十个参数,要想启动多个虚拟机,以及监视多个虚拟机运行状态会非常困难,这时候就需要virsh这样一个虚拟机的管理工具 ...

  5. x-manager 管理 kvm虚拟机

    yum  groupinstall  GNOME Desktop yum install dejavu-lgc-sans-fonts yum install -y virt-manager  kvm命 ...

  6. 【收藏】linux下用命令方式创建及管理kvm虚拟机

    virt-install --virt-type=kvm --name=centos7-2 --vcpus=2 --memory=2048 --location=/root/iso/CentOS-8. ...

  7. Centos7.4安装kvm虚拟机(使用virt-manager管理)

    2019独角兽企业重金招聘Python工程师标准>>> Centos7.4安装kvm虚拟机(使用virt-manager管理) 之前介绍了使用WebVirtMgr或Openstack ...

  8. Linux内核深入理解定时器和时间管理(6):x86_64 相关的时钟源(kvm-clock,tsc,acpi_pm,hpet)

    Linux内核深入理解定时器和时间管理 x86_64 相关的时钟源(kvm-clock,tsc,acpi_pm,hpet) rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容 ...

  9. KVM虚拟机快速入门

    ##kvm虚拟化 1.1 kvm 虚拟化介绍 什么是虚拟化 ​ 在计算机技术中,虚拟化技术或虚拟技术(virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU,内存,磁盘空间 ...

最新文章

  1. [CSS]关于z-index与position的一次奇异经历
  2. 使用juniversalchardet做字符编码识别
  3. BugkuCTF-Reverse题特殊的Base64
  4. 微信公众平台服务器 反馈,微信公众号开发之大坑
  5. Java 11新特性
  6. 用vs命令提示符来使用 Installutil.exe来安装和卸载Windows服务
  7. 55岁自学python编程-热门专业三年一换?奥鹏教育解析编程还能火多久
  8. C编程语言中运算符介绍
  9. 这样的书 我改怎么起名呢?
  10. 同时起两个mysql 起不了_两大龙头同时提价,6月起下游订单V字反转,份额都倾向这两家...
  11. hutool实战(带你掌握里面的各种工具)目录
  12. 《从零走向专业,面试产品经理岗位必须掌握的7个高效方法》
  13. Office中常见度量单位(转)
  14. 【移动网络】5G NR: 压缩设计与帧结构等核心操作特性
  15. C语言每日一练——第10天:求一个矩阵主对角线及副对角线元素之和
  16. 高三计算机教学计划,高三信息技术上册教学计划参考
  17. Matlab 图像像素级标注
  18. 【菜鸟dei学习】Nginx简单配置:负载均衡与动静分离
  19. 基于三维激光扫描技术的古建筑测绘工作
  20. 两表互为外键的解决方案

热门文章

  1. pythonqueue线程_python之线程queue
  2. [译]1-Key-Value Coding Programming Guide 官方文档第一部分
  3. JavaSE——MD5、16位流
  4. SpringMVC 拦截器实现
  5. PHP导出excel
  6. 99%学习前端开发都会遇到的问题,百分之百都没绝对意识
  7. iOS初级开发学习笔记:APP生命周期的学习总结
  8. 项目: NFS服务的搭建
  9. 2018 前端开发框架对比
  10. 如何把Eclipse工程导入到Android Studio