Tag: 限制

如何在Docker中增加65536以上的TCP连接数

描述 我做了一个tcp连接testing,在主机上启动一个tcp服务器,并启动其他主机运行容器,在容器中连接到tcp服务器。 当连接总数(所有容器的所有连接数总和)几乎达到65535(例如:刚才的64512)时,另一个tcp连接抛出exception“连接超时”。 我试图用3个主机没有docker连接TCP服务器每个60K连接是好的,它说,TCP服务器做180K连接是好的。 重现问题的步骤: 1.在主机A中启动tcp服务器2.在主机B中启动容器C1 3.在C1中启动60K连接到tcp服务器4.启动主机B中的容器C2 5.在C2中启动60K连接到tcp服务器 描述你收到的结果: 总的TCP连接多于120K 描述你期望的结果: 每个60K连接在两个容器中共计120K连接而成。 您认为重要的其他信息(例如问题偶尔会发生): 主机configuration: 在主机“`root @ debian:〜#ulimit -n 800000 net.ipv4.ip_local_port_range = 5000 65535 net.ipv4.tcp_mem = 8388608 12582912 16777216 net.ipv4.netfilter.ip_conntrack_max = 1000000 net.netfilter.nf_conntrack_max = 1000000 net.netfilter.nf_conntrack_count = 64515 net.nf_conntrack_max = 1000000 total used free shared buffers cached Mem: 986M 808M 178M 8.5M 5.0M 132M -/+ buffers/cache: […]

如何在Docker容器中设置核心文件大小?

我想在Docker容器中将核心文件大小设置为无限制。 我试图在容器中更改limits.conf 。 Dockerfile RUN sed -i.bak '/\# End of file/ i\\* soft core unlimited' /etc/security/limits.conf RUN sed -i.bak '/\# End of file/ i\\* hard core unlimited' /etc/security/limits.conf 我重新启动容器,但没有奏效。 核心文件大小始终为0。 我可以使用该命令 $ ulimit -c unlimited 用于设置核心文件大小。 但是我必须使用另一个应用程序的命令。 所以我不要我们这些命令。 请让我知道如何在Docker容器中更改核心文件大小。

Mongodb在内存不足时终止

我有以下configuration: 运行三个docker容器的主机: MongoDB的 Redis的 一个使用前两个容器来存储数据的程序 Redis和Mongodb都被用来存储大量的数据。 我知道Redis需要保留所有的数据在RAM中,我很好。 不幸的是,Mongo开始占用大量内存,一旦主机内存已满(我们在这里讨论32GB),Mongo或Redis都会崩溃。 我已阅读了以下关于这个问题的以前的问题: 限制MongoDB RAM使用情况 :显然,大多数RAM都被WiredTigercaching使用 MongoDB限制内存 :这里显然问题是日志数据 限制MongoDB中的RAM内存使用量 :在这里,他们build议限制mongo的内存,以便为其caching/日志/数据使用较less的内存 MongoDB使用太多的内存 :这里他们说这是WiredTigercaching系统,它倾向于使用尽可能多的RAM来提供更快的访问。 他们还表示it's completely okay to limit the WiredTiger cache size, since it handles I/O operations pretty efficiently 有没有限制mongodb内存使用的选项? :再次caching,他们还添加了MongoDB uses the LRU (Least Recently Used) cache algorithm to determine which "pages" to release, you will find some more […]

如何限制容器可用的Docker文件系统空间

一般的情况是我们有一个服务器集群,我们希望在Docker之上build立虚拟集群。 为此,我们为不同的服务(Hadoop,Spark等)创build了Dockerfiles。 但是,对于Hadoop HDFS服务,我们有这样的情况:docker容器可用的磁盘空间等于服务器可用的磁盘空间。 我们希望限制每个容器的可用磁盘空间,这样我们就可以dynamic地生成一个具有一定存储大小的额外数据节点,以便为HDFS文件系统做贡献。 我们的想法是使用ext4格式化的环回文件,并将这些文件挂载到我们在docker容器中用作卷的目录中。 但是,这意味着性能损失很大。 我发现了另一个关于SO的问题( Docker容器的磁盘大小和带宽限制 ),但是关于docker的发展速度,答案已经有近1,5年的历史了。 后端将允许我们使用哪种方式或存储 限制每个容器的存储空间 有接近裸机性能 不需要重新分区服务器驱动器

使用Docker-Compose和存储选项(大小)

在devicemapper下工作时,我可以应用磁盘大小配额“–storage-opt size = 1536M”参数。 例如: docker run -dt –name testing –storage-opt size=1536M ubuntu 问题是 ,我怎么能通过使用docker -compose ,通过compose * .yml文件来做到这一点。 谢谢。 另一种解决scheme: 使用devicemapper作为Docker的默认存储驱动程序,并为每个容器设置基础。 要使用devicemapper作为默认设置: 1) apt-get install lvm2 thin-provisioning-tools 2)将/ etc / default / docker更改为: –storage-driver devicemapper –storage-opt dm.basesize=3G 3)一个接一个地做: systemctl stop docker systemctl daemon-reload rm -rf /var/lib/docker systemctl start docker 4)现在你的容器只有3GB的空间。 另外,你可以定义vol。 使用设备映射程序的RUN命令时,空间(大小必须等于或大于基本大小)。 例如: docker […]

为正在运行的守护程序启用PAMconfiguration(limits.conf)

我目前正在尝试使用Docker开发沙箱。 Docker通过正在运行的守护进程产生进程,并且在启用limits.conf文件中规定的限制时遇到很大的麻烦,使得它们适用于守护进程。 具体来说,我正在运行一个forkbomb,这样守护进程就是所有新进程的产生过程。 我给用户打这个电话的nproc限制似乎并没有得到应用,我对于我的生活还是无法弄清楚如何使它工作。 我很安静,只要将正确的文件添加到/etc/pam.d/,但我不确定。