[k3s] 硬盘 read >= 100M/s, 该怎么办?

2022-08-04 12:34:11 +08:00
 wcyl

问题描述

我在腾讯轻量云(CPU:4 核, 内存:4GB, 80GB SSD 云硬盘)上部署了 k3s 和一些服务, 但外部服务常常无法被访问 或访问很慢, ssh 也是.

通过腾讯后台监控, 发现硬盘常常大量读取硬盘, 平均>=30M/s. 当>=90M/s 时就无法提供访问. 得等到硬盘读取速度下来, 或者重启服务器

详细截图

云服务器配置

硬盘使用及监控

iotop 查看的程序读写硬盘的截图

iotop -oP

已部署的服务截图

提问

  1. 不知道你们的 k3s 也是这样的吗?
  2. 我的问题的原因是机器配置太低了吗? 是机器太少了吗? (目前是一台) 是服务太多了吗?
  3. 我该怎么优化呢?

不知道大家有没有遇到这种问题吗? 能改善改善吗?

2708 次点击
所在节点    Kubernetes
16 条回复
hefish
2022-08-04 13:15:47 +08:00
不知道是不是内存不够。
wcyl
2022-08-04 14:14:09 +08:00
@hefish #1 内存确实剩余不多 但是 1.我没开 Swap 2.还剩一点 并且一直很稳定 没有变化

top
[![vedCAe.png]( https://s1.ax1x.com/2022/08/04/vedCAe.png)]( https://imgtu.com/i/vedCAe)

云服务器监控
[![vedp7D.png]( https://s1.ax1x.com/2022/08/04/vedp7D.png)]( https://imgtu.com/i/vedp7D)
wcyl
2022-08-04 14:15:26 +08:00
@wcyl #2 Java 应该是 Jenkins
missz
2022-08-04 14:35:54 +08:00
不涉及生产的话可以一个一个停服务试试看谁的锅
hefish
2022-08-04 15:03:57 +08:00
这个 free 也太少了点吧。。。
wcyl
2022-08-04 15:57:48 +08:00
@missz #4 @hefish #5 马上关了 Jenkins 试试
bankroft
2022-08-04 16:13:02 +08:00
之前遇到过这个问题,开 swap
wcyl
2022-08-04 16:32:04 +08:00
@bankroft #7 我看到很多文章都说 swap 应该关闭 而且开始后

k3s check-config 会提示 swap 应该关闭

```
- swap: should be disabled
```
wcyl
2022-08-04 16:37:43 +08:00
@missz #4 @hefish #5

很神奇, Jenkins 关了之后, 内存剩余 1 个多 G, 磁盘读写也好了

通过配置, 限制 Jenkins 的内存后, 都好了. 磁盘 read 非常低,

自从 k3s 部署成功过后, 服务器从未如此流程 tab 一点也不卡顿了 😂
mxuan
2022-08-04 16:54:50 +08:00
@wcyl jenkins 一般需要 4G 内存,不然内存不够用 swap 后磁盘疯狂写。
mxuan
2022-08-04 16:55:40 +08:00
@mxuan 跑了 k3s 再跑 jenkins 内存估计会不够。
wcyl
2022-08-04 17:25:20 +08:00
@mxuan #11 Jenkins 有配置可以限制内存大小的

没办法 就 2 台服务器 ci-cd 不用 gitlab 的(git 仓库放自己服务器不安全 怕突然服务器访问不上去)

只能用 Jenkins 了 反正是自己的实验的地方 尽量想办法 能克服就克服
mxuan
2022-08-04 17:30:27 +08:00
@wcyl 倒是可以调,默认的确实比较大。。
Ehco1996
2022-08-05 08:11:57 +08:00
我之前也被这个问题困扰好久,本质上是机器的资源不足了, 内存不够,
比如有个 pod 在频繁重启,containerd 会频繁调度,导致磁盘读异常
建议加一个 worker node ,把负载挪上去就没问题了
wcyl
2022-08-05 16:33:55 +08:00
@Ehco1996 #14 对的对的

只是之前是 docker-compose, 也是这些服务. 电脑负载完全没问题. 我都以为是 k3s 太重了, 要回到 docker-compose

其实是有一台服务器, 专门给 Jenkins 的. 当有构建任务时, 就在那台服务器上构建编译, 避免影响已部署的服务

不过没想到 原因竟是 Jenkins 本体
smallthing
2022-08-26 17:43:17 +08:00
@wcyl 试试 drone 构建

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/870621

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX