Tag: 资源

执行进程的Docker用户不能被删除

我有一些特定的用户使用的资源,我不得不删除,因为它从服务器获取大量的资源。 当我列出服务器中的进程时,被删除的用户现在显示为“1001”,而不是我在删除之前显示的名称。 %Cpu(s): 19.8 us, 29.5 sy, 0.0 ni, 50.7 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st KiB Mem : 3882456 total, 183568 free, 2003808 used, 1695080 buff/cache KiB Swap: 1679356 total, 1155300 free, 524056 used. 1463480 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 9192 1001 […]

为单个用户限制docker容器的资源

对于docker集装箱,您可以在docker run设置CPU限制(例如–cpu-quota –cpu-shares )和内存限制( –memory )。 也可以通过–ulimit设置用户的全局nproc限制。 假设两个不同的用户正在一个容器中运行工作负载。 有没有一种方法来为一个特定的docker集装箱内的个人用户(而不是系统全局)设置限制? 例如,使用–ulimit nproc=100 ,不可能指定允许用户在–ulimit nproc=100容器内运行最多n个进程。 例如,如果用户已经在容器外运行了40个进程,则允许他在容器内运行60个进程。 如果你设置ulimit nproc=40并且有40个进程在容器外面运行,他将不被允许在容器内启动一个新的进程。 所以我正在寻找一种方法来强制CPU,内存和进程号码限制在一个单独的docker容器的用户基础上(即使没有这些限制的其他docker容器在同一个系统上运行)。 为每个用户启动泊坞窗容器不是一个选项。

读取cgroups数据而不用挂载它

我有一些cgroupspipe理的服务(实际上在docker中运行)。 为了公平地调度一些资源要求较高的任务,集装箱化的服务需要知道它(尽可能)的资源使用情况。 我决定从cgroups读取这个指标。 但有一个问题。 我知道有两种方法从Docker容器中访问cgroup数据。 直接从容器内部挂载cgroups。 要做到这一点,我需要CAP_SYS_ADMINfunction容器。 我认为这太辛苦了,只能阅读资源使用指标。 使用docker卷,指向主机cgroups挂载点。 这个解决scheme或多或less是合适的,但我正在寻找更优雅的方式。 我不是一个“内核人员”,不熟悉内核源码和文档,所以我可以问noob的问题。 有没有任何内核接口,允许我读取cgroups指标而无需挂载cgroups文件系统?

什么是一个容器的成本?

我通常使用相同的图像作为将要使用它的容器的docker容器容器。 例如, dbdata: image: mysql command: echo 'DVC for MySQL' db: image: mysql volumes_from: – mysql … 使用像天王/真像的微小DVC是另一种方法。 由于我不需要拉另一个图像,所以我相当自信,我的方法使用的带宽less得多。 但是我的方法有什么缺点呢? 当然,你必须解包整个MySQL容器,但是磁盘很便宜,我们不会开始任何繁重的过程。 只是回声,对不对? 如果我为其DVC回收主图像,或者获取专用的DVCtypes的图像,是否在机器资源和带宽方面有任何实际的区别? 我如何评估这个?

如何评估在linux中的特定命令/泊坞窗的CPU和内存使用情况?

我正在编写运行在docker中并由kubernetes编写的脚本的yaml文件。 有没有一种方法来评估特定命令或docker的资源利用率,或者为pod设置cpu和mem的限制的最佳做法是什么? 编辑 大多数这些脚本将在短时间内运行,所以很难获取资源信息。 我只想尝试find一个工具,以获得最大的CPU和内存使用情况,工具工作如同time ,打印执行时间。

在线调整容器资源

在创build之后如何在线调整容器资源? 我想得到一个永久的解决scheme,这是不重置时重新启动。 我使用以下选项在创build时间中设置了资源: -c, –cpu-shares=0 –cpuset="" -m, –memory="" 我已经尝试在这里更改值 /sys/fs/cgroup/

Docker容器的内存使用情况

我使用Docker来运行一些容器化的应用程序。 我有兴趣测量它们消耗多less资源(就CPU和内存使用情况而言)。 有什么办法可以测量Docker容器(如RAM和CPU使用率)消耗的资源吗? 谢谢。

如何在运行时更改分配给容器的资源?

我知道,我可以限制分配给容器的资源,同时使用Docker的CPU和内存的-c和-m标志。 但是,有没有办法可以将这些分配的资源dynamic地(在调配之后)更改为容器,而不用重新部署具有更改的资源的相同容器?

困惑于Docker上的cpushare设置。

我用python编写了一个testing程序“cputest.py”,如下所示: import time while True: for _ in range(10120*40): pass time.sleep(0.008) ,当在一个容器中运行时,其成本为80% (不受其他运行容器的干扰)。 然后我用以下两个命令在两个容器中运行这个程序: docker run -d -c 256 –cpuset=1 IMAGENAME python /cputest.py docker run -d -c 1024 –cpuset=1 IMAGENAME python /cputest.py 并用“顶”来查看他们的CPU成本。 原来,他们相对花费30%和67%的 CPU。 这个结果让我很困惑。 有人会为我解释吗? 非常感谢!