suse linux 10体系时刻跑偏问题解析51CTO博客 - 威尼斯人

suse linux 10体系时刻跑偏问题解析51CTO博客

2019年04月06日10时20分20秒 | 作者: 彭泽 | 标签: 时刻,体系,问题 | 浏览: 298

  在suse linux 10上布置WAS运用和建立ORACLE RAC集群时,经常会碰到因体系时刻禁绝而导致WAS不正常和RAC节点宕机问题,处理体系时刻跑偏的问题,咱们会很天然的想到NTP和CRONTAB。下面针对这个问题来详细说说suse linux 10体系时刻跑偏问题。

一、现象
        通过调查,你会发现在装置体系后第一次设置正确体系时刻后,没设置守时校准的情况下,它的体系时刻一小时会误差有4-6分钟左右,一天下来通常会误差50分钟左右。这在出产环境下肯定会出问题。

二、NTP设置
        假如你能直接衔接到外部时刻源或一个内部的时刻源服务器,你能够在其间的一台suse linux 10上设置NTP服务器,让其他suse linux 10守时同步这台NTP服务器就行。
#vi  /etc/ntp.conf

Radio and modem clocks by convention have addresses in the
form 127.127.t.u, where t is the clock type and u is a unit
number in the range 0-3.

Most of these clocks require support in the form of a
serial port or special bus peripheral. The particular 
device is normally specified by adding a soft link
/dev/device-u to the particular hardware device involved,
where u correspond to the unit number above.

Generic DCF77 clock on serial port (Conrad DCF77)
Address:     127.127.8.u
Serial Port: /dev/refclock-u
 
(create soft link /dev/refclock-0 to the particular ttyS?)

# server 127.127.8.0 mode 5 prefer


Undisciplined Local Clock. This is a fake driver intended for backup
and when no outside source of synchronized time is available.

server 127.127.1.0              # local clock (LCL)
fudge  127.127.1.0 stratum 10   # LCL is unsynchronized

Outside source of synchronized time

server xx.xx.xx.xx           # IP address of server

server  10.7.0.81     #手艺设置时刻源服务器


Miscellaneous stuff

driftfile /var/lib/ntp/drift/ntp.drift # path for drift file

logfile   /var/log/ntp          # alternate log file
# logconfig =syncstatus + sysevents
# logconfig =all

# statsdir /tmp/                # directory for statistics files
# filegen peerstats  file peerstats  type day enable
# filegen loopstats  file loopstats  type day enable
# filegen clockstats file clockstats type day enable

#
# Authentication stuff
#
# keys /etc/ntp.keys            # path for keys file
# trustedkey 1 2 3 4 5 6 14 15  # define trusted keys
# requestkey 15                 # key (7) for accessing server variables
# controlkey 15                 # key (6) for accessing server variables

然后你能够运用:

#hwclock  -r                #检查硬件时刻

#hwclock systohc     #把硬件时刻赋给体系时刻

在其他suse linux 10上设置CRONTAB守时校准
#crontab -e   加上下面一句   (或许用#crontab -u  root  -e)
*/15 * * * *  /usr/sbin/ntpdate 10.7.0.81;/sbin/hwclock -w
意思是每15分钟同步一次并将时刻写入硬件时钟

三、直接设置CRONTAB

     假如有时刻源服务器且suse linux 10服务器都能正常PING通时刻源服务器,你能够在所有的suse linux 10服务器上直接设置CRONTAB来守时同步时刻源服务器。
详细办法同上
#crontab -e   加上下面一句
*/15 * * * *  /usr/sbin/ntpdate 10.7.0.81;/sbin/hwclock -w
意思是每15分钟同步一次并将时刻写入硬件时钟
假如你想看到每天详细的输出成果,能够加一个输出日志ntprizhi.txt来剖析
*/15 * * * *  /usr/sbin/ntpdate 10.7.0.81>>/tmp/ntprizhi.txt;/sbin/hwclock -w
当然也能够检查体系下的日志,假如你是root用户,直接检查
/var/mail/root就能够了,方式如下
Subject: Cron <root@tyzssq> /usr/sbin/ntpdate 10.7.0.81;/sbin/hwclock -w
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20121126103001.076FF2090E@tyzssq.site>
Date: Tue, 26 Nov 2012 18:30:01 +0800 (CST)

26 Nov 18:29:59 ntpdate[6917]: step time server 10.7.0.81 offset -1.361968 sec

四、体系内核参数修正
        即使设置了每15分钟同步,有时你发现仍然会呈现时刻跑偏的问题。这时你能够缩短同步的时刻,比方设置成每5分钟乃至每1分钟同步一次,但假如需求同步的suse linux 10服务器
比较多的情况下对时刻源就会形成压力。这时你需求考虑让suse linux 10服务器自己把时刻跑准,那么办法是修正体系内核参数。
咱们先看一下修正前的体系内核参数
# cat /boot/grub/menu.lst
# Modified by YaST2. Last modification on Thu Nov  3 08:00:47 UTC 2011
default 0
timeout 8
YaST - generic_mbr
gfxmenu (hd0,1)/boot/message
YaST - activate

#Dont change this comment - YaST2 identifier: Original name: linux#
title SUSE Linux Enterprise Server 10 SP2
    root (hd0,1)
    kernel /boot/vmlinuz-2.6.16.60-0.21-smp root=/dev/hda2    resume=/dev/hda1 splash=silent showopts  hda=noprobe hdb=noprobe 
    initrd /boot/initrd-2.6.16.60-0.21-smp

#Dont change this comment - YaST2 identifier: Original name: floppy#
title Floppy
    rootnoverify (hd0)
    chainloader (fd0)+1

#Dont change this comment - YaST2 identifier: Original name: failsafe#
title Failsafe SUSE Linux Enterprise Server 10 SP2
    root (hd0,1)
    kernel /boot/vmlinuz-2.6.16.60-0.21-smp root=/dev/hda2 showopts ide=nodma apm=off acpi=off noresume edd=off 3 hda=noprobe hdb=noprobe 
    initrd /boot/initrd-2.6.16.60-0.21-smp
You have new mail in /var/mail/root

修正后的文件,留意赤色句子部分

# cat /boot/grub/menu.lst
# Modified by YaST2. Last modification on Thu Nov  3 08:00:47 UTC 2011
default 0
timeout 8
YaST - generic_mbr
gfxmenu (hd0,1)/boot/message
YaST - activate

#Dont change this comment - YaST2 identifier: Original name: linux#
title SUSE Linux Enterprise Server 10 SP2
    root (hd0,1)
    kernel /boot/vmlinuz-2.6.16.60-0.21-smp root=/dev/hda2    resume=/dev/hda1 splash=silent showopts  hda=noprobe hdb=noprobe clock=pmtmr
    initrd /boot/initrd-2.6.16.60-0.21-smp

#Dont change this comment - YaST2 identifier: Original name: floppy#
title Floppy
    rootnoverify (hd0)
    chainloader (fd0)+1

#Dont change this comment - YaST2 identifier: Original name: failsafe#
title Failsafe SUSE Linux Enterprise Server 10 SP2
    root (hd0,1)
    kernel /boot/vmlinuz-2.6.16.60-0.21-smp root=/dev/hda2 showopts ide=nodma apm=off acpi=off noresume edd=off 3 hda=noprobe hdb=noprobe clock=pmtmr
    initrd /boot/initrd-2.6.16.60-0.21-smp
You have new mail in /var/mail/root
 

留意赤色的句子其后边加上了蓝色部分clock=pmtmr

当该参数设置后,能够在适宜时刻重启服务器让参数收效,通过测验和调查,体系时刻不再跑偏.
 

时刻加速的原理探求:
相对于SLES9的2.4内核,SLES10中的2.6内核改变了时钟嘀嗒的中止数量,从100个/每秒到1000个/每秒。在双处理器的2.6内核,乃至能够到达每秒3000个。因为LINUX内核发生中止的才能不同,一些时刻嘀嗒或许会被疏忽。这会导致许多额定的嘀嗒来校对被疏忽的嘀嗒,然后带来时刻加速的副作用。当然LINUX自身会有算法来校对和处理体系中的这个问题。

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表威尼斯人立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章