首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes节点ulimit设置

Kubernetes节点ulimit设置
EN

Stack Overflow用户
提问于 2018-11-02 19:32:29
回答 1查看 9.5K关注 0票数 2

我正在运行Kubernetsv1.11.1集群,有时我的服务器开始抛出“打开的文件太多”的消息。我注意到许多打开的TCP连接节点kubelet端口10250。

我的服务器配置了65536个文件描述符。是否需要增加容器主机的打开文件数量?建议的容器主机的ulimit设置是什么?

api服务器日志消息

代码语言:javascript
复制
I1102 13:57:08.135049       1 logs.go:49] http: Accept error: accept tcp [::]:6443: accept4: too many open files; retrying in 1s
I1102 13:57:09.135191       1 logs.go:49] http: Accept error: accept tcp [::]:6443: accept4: too many open files; retrying in 1s
I1102 13:57:10.135437       1 logs.go:49] http: Accept error: accept tcp [::]:6443: accept4: too many open files; retrying in 1s
I1102 13:57:11.135589       1 logs.go:49] http: Accept error: accept tcp [::]:6443: accept4: too many open files; retrying in 1s
I1102 13:57:12.135755       1 logs.go:49] http: Accept error: accept tcp [::]:6443: accept4: too many open files; retrying in 1s

我的主机上限值:

代码语言:javascript
复制
# ulimit -a
-f: file size (blocks)             unlimited
-t: cpu time (seconds)             unlimited
-d: data seg size (kb)             unlimited
-s: stack size (kb)                8192
-c: core file size (blocks)        unlimited
-m: resident set size (kb)         unlimited
-l: locked memory (kb)             64
-p: processes                      unlimited
-n: file descriptors               65536
-v: address space (kb)             unlimited
-w: locks                          unlimited
-e: scheduling priority            0
-r: real-time priority             0

谢谢SR

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-02 22:10:39

65536看起来有点低,尽管有很多应用程序推荐这个数字。这是我在一个K8s集群上为所拥有的:

代码语言:javascript
复制
# kubeapi-server-container
#  |
# \|/
# ulimit -a
-f: file size (blocks)             unlimited
-t: cpu time (seconds)             unlimited
-d: data seg size (kb)             unlimited
-s: stack size (kb)                8192
-c: core file size (blocks)        unlimited
-m: resident set size (kb)         unlimited
-l: locked memory (kb)             16384
-p: processes                      unlimited
-n: file descriptors               1048576 <====
-v: address space (kb)             unlimited
-w: locks                          unlimited
-e: scheduling priority            0
-r: real-time priority             0

与常规bash流程系统的限制不同:

代码语言:javascript
复制
# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 15447
max locked memory       (kbytes, -l) 16384
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024 <===
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 15447
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

但整个系统的总极限是:

代码语言:javascript
复制
$ cat /proc/sys/fs/file-max
394306

如果您看到this,系统上没有任何东西可以超过/proc/sys/fs/file-max,所以我也会检查这个值。我还将检查所使用的文件描述符的数量(第一列),这将使您了解您有多少打开的文件:

代码语言:javascript
复制
$ cat /proc/sys/fs/file-nr
2176    0   394306
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53124816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档