【技术】Linux系统出现时钟错误问题的解决方法 (linux检测到时钟错误)

在使用Linux系统过程中,可能会遇到时钟错误的问题。时钟错误会导致系统时间错误,影响系统的正常运行。那么我们该如何解决Linux系统出现时钟错误的问题呢?

一、时钟错误的原因

1.硬件故障:时钟芯片出现故障,主板上的电池老化等都可能导致时钟错误。

2.系统配置错误:在配置系统时,如果设置了错误的时区或时间,也会导致时钟错误。

3.操作系统故障:操作系统本身出现故障,也可能导致时钟错误。

二、解决方法

1.检查硬件

我们需要检查硬件是否正常。可以更换电池或时钟芯片,如果检查发现硬件存在问题,需要更换或维修。

2.设置正确的时区和时间

如果硬件没有问题,我们需要检查系统的时区和时间是否正确。可以通过以下命令来查看和修改系统的时区和时间:

查看当前时间:

$ date

查看当前时区:

$ timedatectl

设置时区:

$ timedatectl set-timezone Asia/Shangh

修改时间:

$ date -s “2023-06-01 12:00:00”

3.检查操作系统

如果系统的硬件和配置都没有问题,那么我们需要检查操作系统本身是否存在故障。可以通过以下操作来进行检查和修复:

检查和修复文件系统:

$ fsck -y /dev/sda1

修复软件包:

$ sudo apt-get install -f

更新系统:

$ sudo apt-get update

$ sudo apt-get upgrade

4.禁用NTP

如果以上方法都没有解决问题,还有一个可能的原因是NTP(网络时间协议)导致的。NTP是用于同步系统时间的协议,但如果遇到错误配置,会导致时钟错误。可以通过以下命令来禁用NTP:

$ sudo systemctl stop ntpd

$ sudo systemctl disable ntpd

5.重新安装操作系统

如果以上方法都无法解决问题,可能需要重新安装操作系统。但在重新安装之前,需要备份重要数据。

以上就是解决Linux系统出现时钟错误的方法。在出现问题时,我们需要耐心排查,找出问题所在,并综合使用各种方法来解决问题。 Linux系统是一种开放、灵活的操作系统,它的强大体现在其丰富的功能和易于定制化的特点,但也需要我们有足够的技术储备和耐心,才能克服各种系统问题。

相关问题拓展阅读:

怎样分析linux的性能指标

不知道你是不是指性能测试,使拦宽用UnixBench跑一下就有者衡灶了。

各测试指首扮标的说明请看链接

LR

监控

UNIX/Linux

系统方法

一、准备工作:

1.

可以通过两种方法验证服务器上是否配置

rstatd

守护程序:

①使用

rup

命令,它用于报告计算机的各种统计信息,其中就包括

rstatd

的配置信息。使用命

rup

10.130.61.203,

此处

10.130.61.203

是要监视的

linux/Unix

服务器的

IP

,如果该命令返回相关的

统计信息。则表示已经配置并且激活了

rstatd

守护进程;若未返回有意义的统计信息,或者出现一

条错误报告,则表示

rstatd

守护进程尚未被配置或有问题。

②使用

find

命令

#find / -name rpc.rstatd,

该命令用于查找系统中是否存在

rpc.rstatd

文件,如果没有,说明系统没

有安装

rstatd

守护程序。

linux

需要下载

个包:

rpc.rstatd-4.0.1.tar.gz

rsh-0.17-14.i386.rpm

rsh-server-0.17-14.i386.rpm

.下载并安装

rstatd

如果服务器上没有安装

rstatd

程序(一般来说

LINUX

都没有安装)

,需伍凳要下载一个包才有这个服

,

rpc.rstatd-4.0.1.tar.gz.

,

,

rstatd

这个地址下载)下载后,开始安装,安装步骤如下:

tar -xzvf rpc.rstatd-4.0.1.tar.gz

cd rpc.rstatd-4.0.1/

./configure

—配置操作

make

—进行编译

make install

—开始安装

rpc.rstatd

—启动

rstatd

进程

rpcinfo -p

”命令来查看当前系统是否已经启动了

rstatd

守护进程

只要保证

Linux

机器上的进程里有

rstatd

xinetd

这二个服务就可以用

LR

去监视了,通过以下

两点可以检查是否启动:

)检查是否启动

: rsh server

监听的

TCP

514

# netstat -an |grep 514

tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN

如果能看到

514

在监听说明

rsh

服务器已经启动。

)检查是否启动

: rstatd

输入命令

: rpcinfo -p

如果能看到类似如下信息:

程序版本协议端口

5

udp

937

rstatd

4

udp

937

rstatd

3

udp

937

rstatd

2

udp

937

rstatd

1

udp

937

rstatd

那就说明

rstatd

服务启动了

,(

当然这里也可以用

ps ax

代替

)

.安装

rsh

rsh-server

两个服务包方法

a.

卸载

rsh

# rpm

q

rsh

查看版本号

# rpm

-e

版本号

卸载该版本。

b

.安装

# rpm

ivh rsh-0.17-14.i386.rpm rsh-server-0.17-14.i386.rpm

在启动

rpc.rstatd

时,

会报错

Cannot register service: RPC: Unable to receive; errno = Ction refused

解决方法如下:

# /etc/init.d/portmap start

# /etc/init.d/nfs start

然后再次启动

rpc.rstatd

就好了。

.返橘迅安装

xinetd

方法:

①查看

xinetd

服务:

# rpm -q xinetd

xinetd-2.3.14-10.el5

②安装

xinetd

服务:

# yum install xinetd

如果安装不起

xinetd

服务,执行下列操作命令后再次执行

yum install xinetd

命令进行安装:

yum clean packages

清除缓存目录下的软件包

yum clean headers

清除漏此缓存目录下的

headers

yum clean oldheaders

清除缓存目录下旧的

headers

yum clean, yum clean all (= yum clean packages; yum clean oldheaders)

清除缓存目录下的软件包

及旧的

headers

.启动

xinetd

服务:

在有的系统中,通过如下命令重启:

# service xinetd reload

# /in/service xinetd rstart

suse linux

中如下操作:

cd /etc/init.d/xinetd restart

安装完成后配置

rstatd

目标守护进程

xinetd,

它的主配置文件是

/etc/xinetd.conf ,

它里面内容是

一些如下的基本信息:

#

# xinetd.conf

#

# Copyright (c)SuSE GmbH Nuernberg, Germany.

# Copyright (c) 2023 SuSE Linux AG, Nuernberg, Germany.

#

defaults

{

log_type

= FILE /var/log/xinetd.log

log_on_success = HOST EXIT DURATION

log_on_failure = HOST ATTEMPT

#

only_from

= localhost

instances

= 30

cps

=

#

# The specification of an interface is interesting, if we are on a firewall.

# For example, if you only want to provide services from an internal

# network interface, you may specify your internal interfaces IP-Address.

#

#

interface

= 127.0.0.1

}

includedir /etc/xinetd.d

我们这里需要修改的是

/etc/xinetd.d/

下的三个

conf

文件

rlogin

,rsh,rexec

这三个配置文件

,

打这

三个文件里的

disable = yes

都改成

disable = no ( disabled

用在默认的

{}

中禁止服务

)

或是把

# default:

off

都设置成

on

这个的意思就是在

xinetd

启动的时候默认都启动上面的三个服务

!

说明:我自己在配置时,没有

disable = yes

这项,我就将

# default: off

改为:

default: on

,重启后

(cd /etc/init.d/./xinetd restart

)通过

netstat -an |grep 514

查看,没有返回。然后,我就手动在三个文

件中最后一行加入

disable

=

no

,再重启

xinetd

,再使用

netstat

-an

|grep

514

查看,得到

tcp

0

0

0.0.0.0:514 0.0.0.0:* LISTEN

结果,表明

rsh

服务器已经启动。

看到网上有的地方说使用如下命令:

# service xinetd reload

# /in/service xinetd rstart

不知道是在什么系统用的。

二、监控

linux

资源:

controller

中,将

System resource Graphs

中的

Unix resources

拖到右侧的监控区域中,并单击

鼠标右键选择“

Add

Measurements

,

在弹出的对话框中输入被监控的

linux

系统的

IP

地址,然后选

择需要监控的性能指标,并点击“确定”

,出现如下结果:

Monitor name :UNIX Resources. Cannot initialize the monitoring on 10.10.15.62.

Error while creating the RPC client. Ensure that the machine can be connected and that it runs the

rstat daemon (use rpcinfo utility for this verification).

Detailed error: RPC: Failed to create RPC client.

RPC-TCP: Failed to establish RPC server address.

RPC-TCP: Failed to communicate with the portmapper on host ‘10.10.15.62’.

RPC: RPC call failed.

RPC-TCP: recv()/recvfrom() failed.

RPC-TCP: Timeout reached. (entry point: CFactory::Initialize).

检查原因,发现是

Linux

系统中的防火墙开启了并且阻挡了

LoadRunner

监控

Linux

系统的资源,

因此要将防火墙关闭。

关闭防火墙:

# /etc/init.d/iptables stop;

三、监控

UNIX

lr

监控

UNIX

UNIX

先启动一

rstatd

服务

以下是在

IBM AIX

系统中启动

rstatd

服务的方法:

.使用

telnet

root

用户的身份登录入

AIX

系统

.在命令行提示符下输入:

vi /etc/inetd.conf

.查找

rstatd

,找到

#rstatd

sunrpc_udp

udp

wait

root /usr/in/rpc.rstatd rstatd

、将

#

去掉

:wq

保存修改结果

、命令提示符下输入:

refresh

s inetd

重新启动服务。

这样使用

loadrunner

就可以监视

AIX

系统的性能情况了。

注:在

HP UNIX

系统上编辑完

inetd.conf

后,重启

inetd

服务需要输入

inetd -c

UNIX

上也可以用

rup

命令查看

rstatd

程序是否被配置并激活

rstatd

程序已经运行,

重启时,

先查看进程

ps -ef |grep inet

然后杀掉进程,

refresh

s inetd

进行重启。

一、CPU

1、良好状态指标

CPU利用率:User Time

Time

上下文切换:与CPU利用率相关联,如果CPU利用率状态良好,大量的上下文切换也是孝拆可以接受的。

可运行队列:每个处理器的可运行队列

2、监控工具

vmstat

$ vmstat 1

procemoryswapiosystem–

—–cpu——

r b swpd free buff cache si so bi bo in cs

us sy id wa st

重要参数:

r,run queue,可运行队列的线程数,这些线程都是可运行状态,只不过CPU暂时不可用;

b,被blocked的进程数,正在等待IO请求;

in,interrupts,被处理过的中断数

cs,context switch,系统上正在做上下文切换的数目

us,用户占用巧郑枣CPU的百分比

sys,内核和中断占用CPU的百分比

id,CPU完全空闲的百分比

上例可得:

sy高us低,以及高频度的上下文切换(cs),说明应用程序进行了大量的系统调用;

这台4核机器的r应该在12个以内,现在r在14个线程以上,此时CPU负荷很重。

查看某个进程占用的CPU资源

$ while :; do ps -eo pid,ni,pri,pcpu,psr,comm

| grep ‘db_server_login’; sleep 1;

done

PID NIPRI %CPU PSR COMMAND

23 0.0 0

db_server_login

23 0.0 3

db_server_login

23 0.0 2

db_server_login

23 0.0 2

db_server_login

23 0.0 3

db_server_login

23 0.0 0

db_server_login

……

二、Memory

1、良好状态指标

swap

in

(si)

==

0,swap

out

(so)丛咐

==

应用程序可用内存/系统物理内存

70%

2、监控工具

vmstat

$ vmstat 1

procemoryswapiosystem–

—–cpu——

r b swpd free buff cache si so bi bo in csus

sy id wa st

3821

95 1

重要参数:

swpd,已使用的 SWAP 空间大小,KB 为单位;

free,可用的物理内存大小,KB 为单位;

buff,物理内存用来缓存读写操作的buffer大小,KB 为单位;

cache,物理内存用来缓存进程地址空间的 cache 大小,KB 为单位;

si,数据从 SWAP 读取到 RAM(swap in)的大小,KB 为单位;

so,数据从 RAM 写到 SWAP(swap out)的大小,KB 为单位。

上例可得:

物理可用内存 free 基本没什么显著变化,swapd逐步增加,说明最小可用的内存始终保持在 256MB(物理内存大小) * 10% = 2.56MB 左右,当脏页达到10%的时候就开始大量使用swap。

free

$ free -m

total used free shared buffers cached

Mem:

-/+ buffers/cache:

Swap:

三、磁盘IO

1、良好状态指标

iowait %

提高命中率的一个简单方式就是增大文件缓存区面积,缓存区越大预存的页面就越多,命中率也越高。

Linux 内核希望能尽可能产生次缺页中断(从文件缓存区读),并且能尽可能避免主缺页中断(从硬盘读),这样随着次缺页中断的增多,文件缓存区也逐步增大,直到系统只有少量可用物理内存的时候 Linux 才开始释放一些不用的页。

2、监控工具

查看物理内存和文件缓存情况

$ cat /proc/meminfo

MemTotal:kB

MemFree: kB

Buffers: kB

Cached:8 kB

这台服务器总共有 8GB 物理内存(MemTotal),3GB 左右可用内存(MemFree),343MB左右用来做磁盘缓存(Buffers),4GB左右用来做文件缓存区(Cached)。

sar

$ sar -d 2 3

Linux 2.6.9-42.ELp (webserver) 11/30/2023_i686_ (8 CPU)

11:09:33 PM DEV tps rd_sec/s wr_sec/s avgrq-szavgqu-sz await svctm

%util

11:09:35 PM dev8-0 0.00 0.00 0.00 0.00 0.00 0.000.00 0.00

11:09:35 PM DEV tps rd_sec/s wr_sec/s avgrq-szavgqu-sz await svctm

%util

11:09:37 PM dev8-0 1.00 0.00 12.00 12.00 0.000.00 0.00 0.00

11:09:37 PM DEV tps rd_sec/s wr_sec/s avgrq-szavgqu-sz await svctm

%util

11:09:39 PM dev8-0 1.99 0.00 47.76 24.00 0.000.50 0.25 0.05

Average: DEV tpsrd_sec/s wr_sec/s avgrq-sz

avgqu-sz await svctm %util

Average: dev8-0 1.00 0.00 19.97 20.00 0.00 0.330.17 0.02

重要参数:

await表示平均每次设备I/O操作的等待时间(以毫秒为单位)。

svctm表示平均每次设备I/O操作的服务时间(以毫秒为单位)。

%util表示一秒中有百分之几的时间用于I/O操作。

如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢。

如果%util接近100%,表示磁盘产生的I/O请求太多,I/O系统已经满负荷的在工作,该磁盘可能存在瓶颈。

四、Network IO

对于UDP

1、良好状态指标

接收、发送缓冲区不长时间有等待处理的网络包

2、监控工具

netstat

对于UDP服务,查看所有监听的UDP端口的网络情况

$ watch netstat -lunp

Proto Recv-Q Send-Q Local

Address

Foreign

Address

State

PID/Program name

udp

0

0.0.0.0:

0.0.0.0:*

udp

0

0.0.0.0:

0.0.0.0:*

udp

0

0.0.0.0:

0.0.0.0:*

udp

0

0.0.0.0:

0.0.0.0:*

udp

0

0.0.0.0:

0.0.0.0:*

udp

0

0.0.0.0:

0.0.0.0:*

udp

0

0.0.0.0:

0.0.0.0:*

udp

0

0.0.0.0:

0.0.0.0:*

RecvQ、SendQ为0,或者不长时间有数值是比较正常的。

对于UDP服务,查看丢包情况(网卡收到了,但是应用层没有处理过来造成的丢包)

$ watch netstat -su

Udp:

packetsreceived

packetsto unknown port received.

packet

receive errors

packetssent

packet receive errors 这一项数值增长了,则表明在丢包

对于TCP(来自davidshan单卫的经验,thx~~)

1、良好状态指标

对于TCP而言,不会出现因为缓存不足而存在丢包的事,因为网络等其他原因,导致丢了包,协议层也会通过重传机制来保证丢的包到达对方。

所以,tcp而言更多的专注重传率。

2、监控工具

# cat /proc/net/snmp | grep Tcp:

Tcp: RtoAlgorithm RtoMin RtoMaxMaxConn ActiveOpens PassiveOpens

AttemptFails EstabResets CurrEstab InSegsOutSegs RetransSegs

InErrs OutRsts

Tcp:6800 0

849

重传率 = RetransSegs / OutSegs

至于这个值在多少范围内,算ok的,得看具体的业务了。

业务侧更关注的是响应时间。

性能分析工具汇总

CPU性能分析工具:

vmstat

ps

sar

time

strace

pstree

top

Memory性能分析工具:

vmstat

strace

top

ipcs

ipcrm

cat /proc/meminfo

cat /proc/slabinfo

cat /proc//maps

I/O性能分析工具:

vmstat

ipstat

repquota

quotacheck

Network性能分析工具:

ifconfig

ethereal

tethereal

iptraf

iwconfig

nfsstat

mrtg

ntop

netstat

cat /proc/sys/net

一、处理器参数

这是一个很简单的参数,它直观的描述了每个CPU的利用率。在xSeries架构中,如果CPU的利用率长时间的超过80%,就可能是出现了处理器的瓶颈。

Runable processes

这个值描述了正在准备被执行的进程,在一个持续让蔽时间里这个值不应该超过物理CPU数量的10倍,否则CPU方面就可能存在瓶颈。

Blocked

描述了那些因为等待I/O操作结束而不能被执行的进程,Blocked可能指出你正面临I/O瓶颈。

User time

描述了处理用户进程的百分比,包括nice time。如果User time的值很高,说明系统性能用在处理实际的工作。

System time

描述了CPU花费在处理内核操作包旅旁括IRQ和软件中断上面的百分比。如果system time很高说明系统可能存在网络或者驱动堆栈方面的瓶颈。一个系统通常只花费很少的时间去处理内核的操作。

Idle time

描述了CPU空闲的百分比。

Nice time

描述了CPU花费在处理re-nicing进程的百分比。

Context switch

系统中线程之间进行交换的数量。

Waiting

CPU花费在等待I/O操作上的总时间,与blocked相似,一个系统不应该花费太多的时间在等待I/O操作上,否则你应该进一步检测I/O子系统是否存在瓶颈。

Interrupts

Interrupts值包括硬Interrupts和软Interrupts,硬Interrupts会对系统性能带

来更多的不利影响。高的Interrupts值指出系统可能存在一个软件的瓶颈,可能是内核或者驱动程序。注意Interrupts值中包括CPU时钟导

致的中断(现代的xServer系统每秒1000个Interrupts值)。

二、内存参数

Free memory

相比其他操作系统,Linux空闲内存的值坦镇州不应该做为一个性能参考的重要指标,因为就像我们之前提到过的,Linux内核会分配大量没有被使用的内存作为文件系统的缓存,所以这个值通常都比较小。

Swap usage

这个值描述了已经被使用的swap空间。Swap

usage只表示了Linux管理内存的有效性。对识别内存瓶颈来说,Swap In/Out才是一个比较又意义的依据,如果Swap

In/Out的值长期保持在每秒200到300个页面通常就表示系统可能存在内存的瓶颈。

Buffer and cache

这个值描述了为文件系统和块设备分配的缓存。注意在Red Hat Enterprise Linux

3和更早一些的版本中,大部分空闲内存会被分配作为缓存使用。在Red Hat Enterprise Linux

4以后的版本中,你可以通过修改/proc/sys/vm中的page_cache_tuning来调整空闲内存中作为缓存的数量。

Slabs

描述了内核使用的内存空间,注意内核的页面是不能被交换到磁盘上的。

Active versus inactive memory

提供了关于系统内存的active内存信息,Inactive内存是被kswapd守护进程交换到磁盘上的空间。

三、网络参数

Packets received and sent

这个参数表示了一个指定网卡接收和发送的数据包的数量。

Bytes received and sent

这个参数表示了一个指定网卡接收和发送的数据包的字节数。

Collisions per second

这个值提供了发生在指定网卡上的网络冲突的数量。持续的出现这个值代表在网络架构上出现了瓶颈,而不是在服务器端出现的问题。在正常配置的网络中冲突是非常少见的,除非用户的网络环境都是由hub组成。

Packets dropped

这个值表示了被内核丢掉的数据包数量,可能是因为防火墙或者是网络缓存的缺乏。

Overruns

Overruns表达了超出网络接口缓存的次数,这个参数应该和packets dropped值联系到一起来判断是否存在在网络缓存或者网络队列过长方面的瓶颈。

Errors

这个值记录了标志为失败的帧的数量。这个可能由错误的网络配置或者部分网线损坏导致,在铜口千兆以太网环境中部分网线的损害是影响性能的一个重要因素。

四、块设备参数

Iowait

CPU等待I/O操作所花费的时间。这个值持续很高通常可能是I/O瓶颈所导致的。

Average queue length

I/O请求的数量,通常一个磁盘队列值为2到3为更佳情况,更高的值说明系统可能存在I/O瓶颈。

Average wait

响应一个I/O操作的平均时间。Average wait包括实际I/O操作的时间和在I/O队列里等待的时间。

Transfers per second

描述每秒执行多少次I/O操作(包括读和写)。Transfers per second的值与kBytes per second结合起来可以帮助你估计系统的平均传输块大小,这个传输块大小通常和磁盘子系统的条带化大小相符合可以获得更好的性能。

Blocks read/write per second

这个值表达了每秒读写的blocks数量,在2.6内核中blocks是1024bytes,在早些的内核版本中blocks可以是不同的大小,从512bytes到4kb。

Kilobytes per second read/write

关于linux检测到时钟错误的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 【技术】Linux系统出现时钟错误问题的解决方法 (linux检测到时钟错误)