Adjtimex介绍

linux 系统有两个时钟:一个是由主板电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟,硬件时钟。当操作系统关机的时候,用这个来记录时间,但是对于运行的系统是不用这个时间的。另一个时间是 “System clock”也叫内核时钟或者软件时钟,是由软件根据时间中断来进行计数的,内核时钟在系统关机的情况下是不存在的,所以,当操作系统启动的时候,内核时 钟是要读取RTC时间来进行时间同步(有些情况下,内核时钟也可以通过ntp服务器来读取时间) 这两个时钟通常会有一些误差,所以长时间可以导致这两个时钟偏离的比较多,最简单的保持两个时间同步的方法是用软件测出他们之间的误差率,然后用软件进行 修正。在每次重新启动系统的时候,系统都会用hwclock命令对时间进行同步。如果内核时钟在每一个时间中断都快或者慢的话,可以用adjtimex命 令进行调整,使得RTC和内核时间走的快慢一致。 adjtimex 允许用户来调整内核的时间参数,因此可以改变内核时间的速度,可以用hwclock命令来比较出内核时间和RTC时间的偏移率,然后利用adjtimex 命令根据偏移率来对内核时间进行校正,使得内核时间走的快些或者慢些,当经过调整的内核时间跟RTC时间走的同样快的时候,可以把这个命令行写到启动脚本 里面,让每次机器启动的时候都可以把内核的时间参数调整正确。

Adjtimex安装

首先请到下面网址下载:

ftp://ftp.cse.cuhk.edu.hk/pub/redhat/linux/9/en/os/i386/RedHat/RPMS/adjtimex-1.13-6.i386.rpm

然后使用下面指令安装:

# rpm –ivh adjtimex-1.13-6.i386.rpm

Adjtimex命令使用说明

语法:adjtimex [OPTION]… 主要参数说明:

-p, –print 输出内核时间变量的值

-t, –tick val 设置内核时钟计数间隔(微秒)

-f, –frequency newfreq 设置系统时钟偏移量

-c, –compare[=count] 比较系统时钟和CMOS时钟

-i, –interval tim 设置时钟比较间隔时间 (sec)

-l, –log[=file] 将当前时间记录到文件中

–host timeserver 查询时间服务器

-u, –utc 将CMOS时钟设置成UTC

Adjtimex应用

查看当前内核时间变量的信息

# adjtimex -p

mode: 0

offset: 0

frequency: 573135

maxerror: 16384000

esterror: 16384000

status: 65

time_constant: 6

precision: 1

tolerance: 33554432

tick: 10000

raw time: 1189736934s 800946us = 1189736934.800946

return value = 5

比较系统时钟和CMOS时钟的误差

# adjtimex --compare

--- current --- -- suggested --

cmos time system-cmos 2nd diff tick freq tick freq

1191706436 -1969378.503326 -1969378.503326 10000 573135

1191706446 -1969378.503351 -0.000026 10000 573135

1191706456 -1969378.503359 -0.000007 10000 573135 10000 619952

1191706466 -1969378.503403 -0.000045 10000 573135 10000 866825

1191706476 -1969378.503406 -0.000003 10000 573135 10000 591825

1191706486 -1969378.503454 -0.000048 10000 573135 10000 887140

1191706496 -1969378.503449 0.000005 10000 573135 10000 540265

1191706506 -1969378.503510 -0.000061 10000 573135 10000 973075

2nd diff表示系统时间在10秒周期内快了还是慢了几秒种,如“-0.000026”在这里表示系统时间在10秒钟内慢了0.000026秒(注意,这里系 统会连续测试出好几个连续的差别,一般可以参考平均值)。 前面的tick/freq字段表示内核的tick和freq值,后面的tick/freq表示系统对tick和freq的推荐值,用这个值可以对系统时间 进行校正。针对上面的误差可以不需要校正,若需要修正可使用adjtimex –t或adjtimex –f指令进行修正。

修正系统时间和CMOS时间之间的误差:

# adjtimex –t 10002

把系统10秒(10000微秒)的长度定义成实际时间的10002微秒,也就是说让系统时间走的快点,也可以说每系统时间走10秒(10000微秒)就快2微秒,从而系统时间跟上了RTC时间,达到了时间校正的目的。

TurboLinux11system»adjtimex简介的更多相关文章

  1. ASP.NET Core 1.1 简介

    ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...

  2. MVVM模式和在WPF中的实现(一)MVVM模式简介

    MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...

  3. Cassandra简介

    在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...

  4. REST简介

    一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...

  5. Microservice架构模式简介

    在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...

  6. const,static,extern 简介

    const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...

  7. HTTPS简介

    一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...

  8. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  9. Cesium简介以及离线部署运行

    Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...

随机推荐

  1. leetcode 之Remove Duplicates from Sorted Array(1)

    删除数组中的重复元素并返回新数组的个数 思路:保留不同的元素即可. int removeDeplicates(int A[], int n) { ; ; i < n; i++) { if (A[ ...

  2. Windows内核分析——内核调试机制的实现(NtCreateDebugObject、DbgkpPostFakeProcessCreateMessages、DbgkpPostFakeThreadMessages分析)

    本文主要分析内核中与调试相关的几个内核函数. 首先是NtCreateDebugObject函数,用于创建一个内核调试对象,分析程序可知,其实只是一层对ObCreateObject的封装,并初始化一些结 ...

  3. 取消cp确认

    使用cp -r -f 强制覆盖拷贝命令时,每一个文件都需要认为的键入“Y”进行确认 可以通过取消同名cp的定义,命令如下unalias cp

  4. TestDirector其他

    一.查看连接TD的用户 1.用单击界面上的“Connections”按钮,进入如下图: 二.Licenses管理 1.单击“Licenses”按钮,显示如下图: 2.单击“Modify License ...

  5. 未能从程序集“Elmah”中加载类型“Elmah.ErrorLogModule”错误

    项目名与Elmah重名了,以为是配置文件的问题,搞了好久.

  6. 洛谷P3402 【模板】可持久化并查集 [主席树,并查集]

    题目传送门 可持久化并查集 n个集合 m个操作 操作: 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a,b是否属于同一集合,是则输出1否则输出0 ...

  7. C++ 四种显示转换

    转自:http://www.jellythink.com/archives/205   (果冻想) 前言 这篇文章总结的是C++中的类型转换,这些小的知识点,有的时候,自己不是很注意,但是在实际开发中 ...

  8. 第10天-JavaScript正则表达式

    正则有什么用 给定的字符串是否符合正则表达式的过滤逻辑 通过正则表达式,从字符串中获取我们想要的特定部分 替换字符串满足正则表达式的字符 例如:验证邮箱.手机号.银行卡.采集器(爬虫).中奖信息133 ...

  9. mysql-8.0.12安装和配置

    1.下载Mysql8.0.12压缩包.下载地址:https://dev.mysql.com/downloads/file/?id=480557 2.解压文件到本地指定目录.这里我的mysql根目录是: ...

  10. RabbitMQ (一)

    学习RabbitMQ 可以先先了解一下AMQP 简单介绍: AMQP从一开始就设计成为开放标准,以解决众多的消息队列需求和拓扑结构问题,凭借开发,任何人都可以执行这一标准.针对标准编码的任何人都可以和 ...