昨天晚上收到公司內部臨時討論組的一個問題,業務出現不穩定,說是操作系統硬盤有問題。今天大致看了下這個問題。
該系統部署了kubernetes主節點,安裝了etcd server。運行在公司私有雲平台上,所在物理機是台利舊的服務器。所用磁盤存儲為性能比較低下的NAS網絡存儲。
查看系統資源情況,cpu利用率和內存利用率均正常。磁盤io等待不穩定,且相對較高。有時會超過20%。
查看io進程,發現基本是etcd server進程。
etcd日志報錯 大量的超時日志。
通過查閱相關信息,在阿里雲和亞馬遜雲均有人遇到這個問題。
Github上有相關issue:https://github.com/kubernetes/kubernetes/issues/70082
貌似運行在特定版本的etcd上問題不會浮現:https://github.com/etcd-io/etcd/issues/10610
還有一個比較近似的問題博客:https://www.qttc.net/522-etcd-warn-took-too-long.html
目前通常是解決方案是將etcd集群部署在SSD或者Nvme的固態硬盤上,以避免etcd server的磁盤io瓶頸。或者通過優化etcd讀寫。