linux 每日学一点《vmware中linux系统时间变慢的解决》
2010-11-15 15:24
525 查看
vmware中linux系统时间变慢的解决
环境:vmware5.5 linux AS4
安装好vmware后发现vmware的时间会越走越慢,是什么原因呢,以下是摘自 http://blog.seety.org/everydaywork/2005/5/22/332/ 的介绍:
Linux 2.6核心里把系统计时器的频率加高到1000 Hz ,VMware没办法真的每隔1ms就报一次讯号给guestOS,所以guestOS里的Linux 2.6无法确实接到计时器的讯号。本来这也不应该造成问题,不过2.6核心处理这个"tick loss"的程式有问题,以致于guestOS里的Linux 2.6系统时间走一秒会慢一秒;外面过了两秒里面只过了一秒。
可以通过更改计时器频率的方法来处理:
include/asm-i386/param.h
#define HZ 1000 /* Internal kernel timer frequency */
改成
#define HZ 100 /* Internal kernel timer frequency */
意思就是让计时器慢到 100Hz,虽然这样可行,但要重新编译内核太麻烦了。那有没其他办法呢,答案是肯定的。
方法一:安装Vmware tools
安装完成vmware tools后运行 vmware-toolbox,把Options中的time synchronization....钩选上。这样VMWare Tool后台程序就会每三分钟与宿主主机同步更新一次时间。试验中发现vmware-tolls 只会在虚拟机慢于主机的时候将虚拟机时间同步到主机,暂时未发现怎么设置使虚拟机时间过快的时候也同步。
vmware tools的安装,参考我的另一篇笔记: http://hi.baidu.com/archieyao/blog/item/498848adab17290a4a36d61c.html 据网上的介绍,对于grub方式启动,在kernel参数里加入 clock=pit nosmp noapic nolapic也可以解决部分问题,但我试验过好像并没什么优化,如果不进行时间同步,虚拟机上的时间依然走得像醉汉,可能我的内核是2.6的原因吧。
方法二、连接到时间服务器同步时间,前提是能联网。
linux下使用ntpdaten连接时间服务器进行时间同步,ntpdate命令的语法很简单,但必须用root身份运行它。你可以在命令行中指定一个或者多个时间服务器。
命令格式:
#ntpdate 服务器地址
到那找时间服务器呢?Windows XP中有几个现成的时间服务器可以使用,何不就地取材呢^-^ ,打开xp控制面版->日期和时间->internet时间,服务器列表里的服务器都可以使用:
#ntpdate time.windows.com time-a.nist.gov time-b.nist.gov time-nw.nist.gov
还可以使用这里面的时间服务器:Internet 上可用的“简单网络时间协议”时间服务器列表 http://www.mycuc.com/Article/wenzhai/pcwz/200704/634.htm 为了保证时间精确同步,还需要定时运行ntpdate来同步时间,通过crontab来实现定时调度。例如设定每分钟同步一次,添加进系统任务调度中,在/etc/crontab里面添加以下句子:
*/1 * * * * ntpdate time.windows.com time-a.nist.gov time-b.nist.gov time-nw.nist.gov
重启系统任务调度服务:
#service crond restart
等候1分钟左右检查时间同步是否起作用。
环境:vmware5.5 linux AS4
安装好vmware后发现vmware的时间会越走越慢,是什么原因呢,以下是摘自 http://blog.seety.org/everydaywork/2005/5/22/332/ 的介绍:
Linux 2.6核心里把系统计时器的频率加高到1000 Hz ,VMware没办法真的每隔1ms就报一次讯号给guestOS,所以guestOS里的Linux 2.6无法确实接到计时器的讯号。本来这也不应该造成问题,不过2.6核心处理这个"tick loss"的程式有问题,以致于guestOS里的Linux 2.6系统时间走一秒会慢一秒;外面过了两秒里面只过了一秒。
可以通过更改计时器频率的方法来处理:
include/asm-i386/param.h
#define HZ 1000 /* Internal kernel timer frequency */
改成
#define HZ 100 /* Internal kernel timer frequency */
意思就是让计时器慢到 100Hz,虽然这样可行,但要重新编译内核太麻烦了。那有没其他办法呢,答案是肯定的。
方法一:安装Vmware tools
安装完成vmware tools后运行 vmware-toolbox,把Options中的time synchronization....钩选上。这样VMWare Tool后台程序就会每三分钟与宿主主机同步更新一次时间。试验中发现vmware-tolls 只会在虚拟机慢于主机的时候将虚拟机时间同步到主机,暂时未发现怎么设置使虚拟机时间过快的时候也同步。
vmware tools的安装,参考我的另一篇笔记: http://hi.baidu.com/archieyao/blog/item/498848adab17290a4a36d61c.html 据网上的介绍,对于grub方式启动,在kernel参数里加入 clock=pit nosmp noapic nolapic也可以解决部分问题,但我试验过好像并没什么优化,如果不进行时间同步,虚拟机上的时间依然走得像醉汉,可能我的内核是2.6的原因吧。
方法二、连接到时间服务器同步时间,前提是能联网。
linux下使用ntpdaten连接时间服务器进行时间同步,ntpdate命令的语法很简单,但必须用root身份运行它。你可以在命令行中指定一个或者多个时间服务器。
命令格式:
#ntpdate 服务器地址
到那找时间服务器呢?Windows XP中有几个现成的时间服务器可以使用,何不就地取材呢^-^ ,打开xp控制面版->日期和时间->internet时间,服务器列表里的服务器都可以使用:
#ntpdate time.windows.com time-a.nist.gov time-b.nist.gov time-nw.nist.gov
还可以使用这里面的时间服务器:Internet 上可用的“简单网络时间协议”时间服务器列表 http://www.mycuc.com/Article/wenzhai/pcwz/200704/634.htm 为了保证时间精确同步,还需要定时运行ntpdate来同步时间,通过crontab来实现定时调度。例如设定每分钟同步一次,添加进系统任务调度中,在/etc/crontab里面添加以下句子:
*/1 * * * * ntpdate time.windows.com time-a.nist.gov time-b.nist.gov time-nw.nist.gov
重启系统任务调度服务:
#service crond restart
等候1分钟左右检查时间同步是否起作用。
相关文章推荐
- VMware虚拟机linux系统时间同步的解决办法
- 解决VMware上RedHat Linux系统时间过快或过慢的问题
- 在VMWare下安装Linux系统无法全屏显示的解决办法
- Vmware虚拟机里面的linux系统ping不通宿主机的解决方法(注意同时安装vmware和vbox虚拟机)
- VMWARE内系统时间出现问题的解决方法一则
- vmware 昨天装好的Linux系统,今天再打开虚拟机,找不到了?解决办法
- linux环境下时区无法设置(系统时间慢8个小时)的问题解决
- VMware虚拟机linux系统时间同步的解决办法centos rhel
- 老男孩教育每日一题-2017年5月2日-Linux系统中,不小心把chmod命令的权限弄没了,怎么解决?
- VMware中Linux系统时间与主机同步以及时区设置
- 解决linux环境机器 系统时间不对
- linux 每日学一点《LinuxTi:如何关闭系统的蜂鸣器》
- 用VMware克隆虚拟机时,克隆好的linux系统网卡启动不起来的解决方法
- 【Ubuntu】Windows与Linux(Ubuntu)双系统时间不一致 (相差8小时) 的解决方法
- 双系统下Windows与Linux时间无法同步问题解决
- vmware,virtualbox 虚拟机Linux系统复制或克隆后网络连不上,网卡找不到解决办法
- linux更新系统时间&检测到系统时钟错误解决办法
- Linux和Windows双系统带来的系统时间问题的解决详述
- VMware中linux系统与时间同步的问题
- 【转】Windows与Linux(Ubuntu)双系统时间不一致的解决方法