閏秒為什麼會導致linux出現問題
由於Linux kernel 2.6.29之前版本存在bug,在進行閏秒調整時可能會引起系統時鐘服務ntpd程式死鎖。Debian Lenny、RHEL/CentOS 5等舊發行版今天仍被廣泛使用,部分供應商早已經發布了補丁。
閏秒導致部分Linux伺服器高CPU使用率
國際地球自轉和參考座標系統服務(IERS)在2012年6月30日午夜(北京時間7月1號7點59分59秒)增加一閏秒(即出現7:59:60)。由於Linux kernel 2.6.29之前版本存在bug,在進行閏秒調整時可能會引起系統時鐘服務ntpd程式死鎖。Debian Lenny、RHEL/CentOS 5等舊發行版今天仍被廣泛使用,部分供應商早已經發布了補丁。
但除了Linux伺服器外,一些伺服器程式也因為閏秒出現了問題,如Reddit、Mozilla、FourSquare、Yelp、LinkedIn和Gawker等網站都短暫遭遇了技術問題,國內的一家雲儲存供應商發現執行在CentOS 6.2上的Java和MySQL因閏秒出現了不同程度的CPU利用率增長,猜測是JVM和MySQL試圖通過CPU硬體晶振的資料獲得當前精確的時間,由於閏秒的關係,這個時間和作業系統維持的牆上時間(Wall Time,也就是顯示給使用者看的時間)不一致,導致了這個問題。簡單的修正方法是強制重置系統時間,讓系統中所有時間回到同步的狀態
近日,國際地球自轉和參考系統服務地球定向中心(IERS)通過推特重申,國際標準時間UTC將在格林尼治時間2016年12月31日23時59分59秒(北京時間2017年1月1日7時59分59秒)之後,在原子時鐘實施一個正閏秒,即增加1秒,然後才會跨入新的一年。
每隔一段時間,目前世界範圍內通用的協調世界時(UTC)會與依據地球圍繞太陽運動計算的平太陽日和世界時(UT1)出現很小的偏差,需要對UTC增加或者減少一秒來消除。
簡要解決方法:在發生閏秒前停掉ntpd服務,閏秒發生後再開啟ntpd
根解:放棄使用ntpd,使用簡化的sntp協議,同時在實現直接呼叫settimeofday來完成,不會觸發核心的事件調整異常
Java Fortunately the fix is straightforward:
/etc/init.d/ntp stop
date -s "$(date)"
Mysql
The fix is quite simple – simply set the date. Alternatively, you can restart the machine, which also works. Restarting MySQL (or Java, or whatever) does NOT fix the problem. We put the following into puppet to run on all our machines:
$ cat files/bin/leap-second.sh
#!/bin/bash
# this is a quick-fix to the 6/30/12 leap second bug
if [ ! -f /tmp/leapsecond_2012_06_30 ]
then
/etc/init.d/ntpd stop; date -s "`date`" && /bin/touch /tmp/leapsecond_2012_06_30
fi
相關文章
- IT中的閏秒問題
- 什麼會導致HTTP出現429請求過多錯誤?HTTP
- 原始碼分析 Mybatis 的 foreach 為什麼會出現效能問題原始碼MyBatis
- Apache RocketMQ中如果一個topic堆積了非常多的訊息會導致rockemq出現什麼問題ApacheMQ
- net.ipv4.tcp_tw_recycle = 1會導致什麼問題產生TCP
- JDK1.5 + TOMCAT5 為什麼會出現下列問題呢???JDKTomcat
- PHP 原始碼探祕 – 為什麼 trim 會導致亂碼PHP原始碼
- PHP原始碼探祕-為什麼trim會導致亂碼PHP原始碼
- 什麼會導致HTTP代理出現400錯誤請求HTTP
- Spring使用實現類注入為什麼會導致高耦合度(舉例)Spring
- 什麼原因會導致raid掉陣AI
- 執行緒崩潰為什麼不會導致 JVM 崩潰執行緒JVM
- linux終端關閉時為什麼會導致在其上啟動的程式退出?Linux
- lombok+JPA可能會出什麼麼問題? - jpabuddyLombok
- 面試官問我:什麼是訊息佇列?什麼場景需要他?用了會出現什麼問題?面試佇列
- 為什麼 Go 中有的自定義 error 會導致記憶體溢位GoError記憶體溢位
- 為什麼電池正負極短接會導致電池燒燬
- 為什麼mysql會經常出現主從同步不一致的情況MySql主從同步
- Qmail日誌中為什麼會出現"CNAMElookupfailedtemporarily"(轉)AI
- 雲端計算之路-阿里雲上:排查“黑色30秒”問題-為什麼請求會排隊阿里
- EfCore3的OwnedType會導致Sql效率問題SQL
- win10 某個應用導致預設應用出現問題怎麼解決Win10
- js使用字串為什麼會出現雙引號?JS字串
- 什麼是資料洩露?哪些問題可導致資料洩露
- 實戰排查|為什麼遮擋推流攝像頭,會導致播放綠屏?
- 一次錯誤使用 go-cache 導致出現的線上問題Go
- 一條執行4秒的sql語句導致的系統問題SQL
- 網頁出現404頁面,是什麼問題?網頁
- 閏年的計算問題
- 為什麼分散式限流會出現不均衡的情況?分散式
- 爬蟲代理為什麼會出現超時的情況?爬蟲
- 什麼是Linux?為什麼企業會需要Linux運維?Linux運維
- 面試題。為什麼輸出BBBBB?面試題
- 為什麼 Ubuntu 家族會佔據 Linux 發行版的主導地位?UbuntuLinux
- ntpdate會導致mysql slow query log出現很大的query timeMySql
- ANALYZE導致的阻塞問題分析
- MySQL Flush導致的等待問題MySql
- 2017元旦,你被閏秒嚇到了嗎?-閏秒背景與資料庫處理資料庫