如何解决如何在Docker容器中设置net.ipv4.tcp_tw_recycle
在使用JMeter docker进行压力测试时,我需要设置 tcp_tw_recycle 以根据this advice启用快速回收TIME_WAIT套接字。但是在运行JMeter Docker容器时,我遇到了错误消息“ / proc / sys / net / ipv4 / tcp_tw_recycle:无此类文件或目录”。
docker run --privileged -i -v /e/JMeter:/JMeter -w /JMeter --rm --sysctl net.ipv4.tcp_tw_recycle=1 vinsdocker/jmserver:latest -n -t "/JMeter/TestNginx.jmx" -l "/JMeter/log/log.jtl" -e -o "/JMeter/output/"
docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"write sysctl key net.ipv4.tcp_tw_recycle: open ?/proc/sys/net/ipv4/tcp_tw_recycle: no such file or directory\"": unknown.
this JMeter docker image的基本图像是“ openjdk:8-jre-slim”。
Docker版本:
Docker版本19.03.8 ,构建afacb8b
我发现/ sys / net / ipv4 /文件夹中的文件在不同的Docker主机中运行时不同。 在Windows的Docker桌面中,我找到了以/ proc / sys / net / ipv4 / tcp_ *开头的 62 文件。但是在CentOS7的Linux版Docker中只有这类文件 6 。而且没有名为tcp_tw_recycle的文件。为什么它们在不同的Docker主机中不同?
在适用于Windows(Wins10)的Docker桌面的容器中执行uname -a
。
root@b8a08c3ea9ab:/# uname -a
Linux b8a08c3ea9ab 4.19.76-linuxkit #1 SMP Thu Oct 17 19:31:58 UTC 2019 x86_64 GNU/Linux
在Docker for Linux(CentOS7)的容器中执行uname -a
。
root@7d929239742c:/# uname -a
Linux 7d929239742c 3.10.0-1127.18.2.el7.x86_64 #1 SMP Sun Jul 26 15:27:06 UTC 2020 x86_64 GNU/Linux
链接:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。