X色综合网I人妻一级I中国一区二区三区毛片I亚洲影视精品I66av在线视频I色视屏I超碰999I日韩一区二区三区中文字幕I91超级碰I在线看岛国avI午夜精品久久久久久久男人的天堂I在线看AV的网站I人人干美女I亚洲产国偷v产偷v自拍涩爱I欧美高清va在线观看I久久六六热I国产精品7777I夜夜骚aV一区二区三区..啊

您好,歡迎進入北京泰福特電子科技有限公司官網(wǎng)

咨詢服務熱線

400-015-1230

Linux下GDB調試NTP時間同步問題

發(fā)布時間:2022-04-11 15:48:59

  最近有遇到一例比較有趣的Linux下NTP時間同步問題,嘗試了使用GDB調試的方法解決,在這里分享一些個人的心得,希望對大家有些幫助。

問題現(xiàn)象:

  ECS Linux CentOS實例中時間經(jīng)常出現(xiàn)偏差,客戶已經(jīng)根據(jù)官方文檔配置了NTP時間同步,同步源為文檔中***的公網(wǎng)NTP服務器嘗試調整一些同步頻率的參數(shù),并沒有實際效果。其中注意到一個現(xiàn)象,如果我們列出NTP日志中信息,會發(fā)現(xiàn)一旦現(xiàn) "no servers reachable" 之后,ntpd就會停止同步。而如果重啟ntpd同步問題就會暫時得到解決,過了一天左右問題又會復現(xiàn)。

調試過程:

  由于通過普通的ntpd的調整一些參數(shù)無法解決問題,決定采用GDB現(xiàn)場調試的方式來看看問題發(fā)生時為什么ntpd不再同步。

  調試之前我們首先要確認ntpd更新系統(tǒng)時間是具體在哪個函數(shù)中實現(xiàn)的。因此首先采用閱讀Linux NTP代碼的方式將范圍縮小,確認具體代碼段如下:

void

clock_select(void)

{

...

clock_update(); <----------- 更新系統(tǒng)時間

因此我首先將斷點設在clock_select,結果是可以中到,得到的堆棧如下:

因此我進一步可以設置斷點到clock_update附近:

設置斷點到clock_update但是這次沒有中,因此可以判定是在之前的邏輯判斷中跳出了。進一步跟蹤后發(fā)現(xiàn):

for (n = 0; n < NTP_HASH_SIZE; n++) {

for (peer = peer_hash[n]; peer != NULL;peer =

peer->next) {

peer->flags &= ~FLAG_SYSPEER;

peer->status = CTL_PST_SEL_REJECT;

/*

* Leave the island immediately if the peer is

* unfit to synchronize.

*/

if (peer_unfit(peer))

continue;

  如上代碼我們對每一個時間同步源會調用peer_unfit來判斷他是否“適合”做時間同步。如果所有同步源都不適合做同步的話,自然就會跳出。因此接下去我們可以考慮設置斷點在peer_unfit,并且查看其返回值:

    注意上圖是在本地正常的測試機上截取的,而在用戶機器上返回值寄存器rax為1,因此可以判斷所有配置的同步源被peer_unfit中的邏輯判斷為不適合做同步。

因此我們接下去就可以使用相同的方法對peer_unfit做進一步跟蹤:

我們發(fā)現(xiàn)失敗在如下的檢查:

if (root_distance(peer) >= sys_maxdist + clock_phi *

ULOGTOD(sys_poll))

rval |= TEST11;     /* distance exceeded */

匯編代碼如下:

匯編代碼

    這表明計算下來本地時鐘和遠端NTP服務器的distance過大。clock_phi 是晶振的頻率為0.000015,而sys_poll是同步的詢問時間,兩者相乘是非常小的。所以主要比較的是當前的distance和sys_maxdist,后者默認為1。

root_distance是一個相對復雜的計算:

dist += max(sys_mindisp, dist + peer->delay) / 2 +

peer->rootdispersion + peer->disp + clock_phi *

(current_time - peer->update) + peer->jitter;

其中可以發(fā)現(xiàn)他和當前時鐘和NTP服務上次成功的時間,兩者的差值有關。因此如果時鐘走的比較快,而有一次甚至幾次同步失敗,整個NTP服務就有可能不會再進行同步了。

尋找解決方案:

以上比較的幾個參數(shù)中***可調的就是sys_maxdist,我們可以繼續(xù)閱讀Linux代碼來了解怎么調整他:

case CONF_TOS_MAXDIST:

proto_config(PROTO_MAXDIST, 0, ftemp, NULL);

因此我們可以通過在ntp.conf中添加"tos maxdist"可以增大,從而容忍本地時鐘過快。

以上一例是采用GDB調試的方法來解決一些服務產(chǎn)生的問題,希望給大家提供解決問題的另一種思路。


  • 聯(lián)系方式
  • 傳 真:86-10-82782026
  • 電 話:400-015-1230
  • 地 址:北京市海淀區(qū)北清路68號院用友軟件園北區(qū)17號樓三層
在線咨詢

咨詢電話:

400-015-1230

  • 微信掃碼 關注我們

Copyright ? 2002-2035 北京泰福特電子科技有限公司 版權所有 備案號:京ICP備12028220號
京公網(wǎng)安備 11010802025976號

掃一掃咨詢微信客服

18519396506
主站蜘蛛池模板: 精品1区2区3区 | 欧美日韩高清一区 | 一本色道久久99一综合 | 精品视频一区二区在线观看 | 最近免费韩国日本hd中文字幕 | 色5566| 国产又色又爽又黄刺激视频 | 欧美成人精品 | 国产二级一片内射视频播放 | 精品国产一区二区三区四区精华液 | 久久午夜夜伦鲁鲁片 | 色www | 天堂在线网 | 亚洲成人网在线播放 | 裸体按摩www性xxxcom | 国产精品久久国产三级国不卡顿 | 银娇在线观看 | 亚洲乱亚洲乱妇50p 婷婷丁香六月天 | 久久精品无码一区二区三区 | 波多野结衣丝袜 | 伊人久久大香线蕉avapp下载 | 黄色国产免费 | 蜜桃av一区二区三区 | 大黄网站在线观看 | 国产日产欧产精品推荐 | 人妻中文无码久热丝袜 | 无码加勒比一区二区三区四区 | 肉色欧美久久久久久久免费看 | 奇米色影视 | 亚洲精品乱码久久久久久v 公车激情云雨小说 | 中国少妇内射xxxxⅹ | 美女18禁永久免费观看网站 | 久久久精品 | av老司机亚洲精品天堂 | 中文字日产乱码六区中国有限公司 | 三级日本高清完整版热播 | 亚洲操操 | 欧美一级在线免费观看 | 国产亚洲美女精品久久久 | 成人精品在线 | 亚洲精品一区二区三区大桥未久 | 午夜视频在线看 | 韩国三级理论无码电影在线观看 | 国产情侣91 | 亚洲乱码无人区卡1卡2卡3 | 国产精品77777 | 911精品国产一区二区在线 | 狠狠躁夜夜躁人人躁婷婷 | 亚洲日韩性欧美中文字幕 | 国产成人av片在线观看 | 国产成人麻豆免费观看 | 四虎永久在线视频 | 国产六月婷婷爱在线观看 | 国产三级久久久精品麻豆三级 | 狠狠久久亚洲欧美专区 | 亚洲日韩看片无码超清 | 热の综合热の国产热の潮在线 | 免费看日韩毛片 | 人妻互换 综合 | 无码视频一区二区三区在线观看 | 人妻av中文字幕一区二区三区 | 在线看片不卡 | 久久久久青草线蕉亚洲麻豆 | 亚洲精品入口一区二区乱麻豆精品 | 欧美国产综合欧美视频 | 99久久婷婷国产综合精品 | 国产精品亚| 国产精品乱码高清在线观看 | 久久国产乱子伦免费精品 | 天堂在线www中文 | 四虎在线免费观看 | 日本91网站 | 美丽人妻被按摩中出中文字幕 | 亚洲精品国产熟女久久久 | 国产成人av综合色 | 欧美成人h版 | 99久久99久久精品免费观看 | 亚洲人成电影网站在线播放 | 国内自拍一区 | 日本特黄高清免费大片 | 色图色小说 | 加勒比一区二区无码视频在线 | 国产在线精品无码不卡手机免费 | 狠狠操导航| 黄色大片黄色大片 | 老牛影视av一区二区在线观看 | 毛片com | 无码精品a∨在线观看中文 日本精品在线播放 | 亚洲性色av一区二区三区 | 久激情内射婷内射蜜桃人妖 | 日本视频网站www色高清免费 | 黄色电视频 | 爱爱一级 | 久久www成人免费直播 | 国产免费激情视频 | 天堂在线资源中文在线8 | 人妻无码中文久久久久专区 | 777爽死你无码免费看一二区 | 夜夜添夜夜添夜夜摸夜夜摸 |
Powered by RRZCMS