Tag: 内存

监视docker中的内存使用情况

我按顺序运行了1000个docker集装箱。 每个容器实例运行一个特定的工作。 在作业执行后,我终止容器以释放资源并在另一个实例中运行另一个作业等等。 我想获得每个容器的内存使用情况。 每个容器的一个值表示平均内存使用量。 这怎么可能? 可能与普罗米修斯,但我不知道如何使用它

Docker Java内存使用情况

我有一些理解Docker Java容器如何为主机使用内存的问题。 我给容器JVMselect "JAVA_OPTS=-XX:MaxMetaspaceSize=1024m -Xms=512m -Xmx=1024m -XX:PermSize=512m -XX:MaxPermSize=1024m " 但是,当我在容器上运行Docker统计信息时,我发现MEM USAGE是1.6GB docker是否为容器的JVM部分分配内存? 你通常限制容器的内存限制吗?

Redis内存使用情况,ZSET和Docker

我在Docker(官方图像)上有一个redis实例(3.2),除了我每秒启动的脚本,在ZSET中排除潜在的项目外,这个实例几乎没有使用。 这是我的脚本: local latestSchedule = redis.call('ZRANGEBYSCORE', KEYS[1], '-inf', 123456789, 'LIMIT', '0', '1') if latestSchedule[1] == nil then return nil end redis.call('ZREM', KEYS[1], latestSchedule[1]) return latestSchedule[1] 即使这个ZSET大部分时间都是空的,Redis正在占用更多的内存,高达128MB,直到它重新启动并再次上升。 我错过了什么吗? redis的内存使用量通常会增长而不做任何事情吗? 我的脚本不适合从ZSET中排队吗? 我应该看别的地方吗? 按照Karthikeyan Gopall的要求,这是INFO,在它达到128MB之前: # Server redis_version:3.2.0 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:5382f69a4e75566b redis_mode:standalone os:Linux 3.16.0-4-amd64 x86_64 arch_bits:64 multiplexing_api:epoll gcc_version:4.9.2 process_id:1 run_id:4e22b73f22436677376b4d097746c2a30ba2b9bc tcp_port:6379 uptime_in_seconds:21140 uptime_in_days:0 hz:10 lru_clock:6816977 executable:/data/redis-server config_file: # […]

Docker:启用内存限制和内存过载禁用的运行容器的负面影响是什么?

在我的环境中,我将禁用内存过量使用(vm.overcommit = 2)。 这也禁用了Linux OOMKiller。 原因是我在Docker容器中运行Java应用程序时,内存大小受到了限制,我希望看到它们与OOMError(和写入堆转储)失败,而不是由Linux OOMKiller静静地杀死。 Iam不确定可能的负面影响。 我不是Linux内核,docker内存pipe理或Java VM专家,所以决定在这里问一下。 如果有人有这样的经验,你能告诉我吗?

selectRancher中容器的可用内存

在牧场主,我如何selectdocker集装箱的可用内存? 在OSX上,我可以这样做: VBoxManage modifyvm default –memory 5000 定义可用于我的docker机器的内存。 我将如何实现这个使用牧场主build立一个主机?

Docker的 – 内存开关不能按预期工作

前言 我正在写一个小小的演示文稿,列出使用Docker时的一些“疑难杂症”,而且我已经碰到了自己的一个。 在解释让Docker在没有内存限制的情况下运行的危险时,我发现它并不像我预期的那样运行。 我用一个PHP脚本创build了一个Docker镜像,它将recursion地创build数组来消耗内存,报告当前使用了多less内存。 如果没有内存限制,脚本会以1GB的速度自杀。 你可以在这里获取图像: https : //hub.docker.com/r/gisleburt/my-memory-hog 你可以在这里看到源代码: https : //github.com/Gisleburt/my-memory-hog 我的期望是,以下内容将阻止脚本超出128mb的内存。 docker run -it –memory=128m –memory-swap=0 gisleburt/my-memory-hog 但是,在OSX(本地和使用虚拟框驱动程序的docker-machine)上,docker实际上是在250mb之前的脚本。 在Ubuntu上,脚本达到1GB,并自杀。 Weirder仍然认为,如果我们检查docker的docker stats ,我们可以看到容器实际上并没有超过它的内存限制。 实际上,在Ubuntu上使用–memory=4m运行时, –memory=4m docker stats仍然表示它不会超过4mb,即使脚本以1gb完成。 在Mac上,限制到4mb,杀死剧烈的5-6mb大关。 我假设我错过了分配内存的方式,但是我不知道它是什么。 题 为什么docker容器中的脚本似乎比docker容器使用更多的内存? 容器内部和外部的内存发生了什么变化? 版本信息 Mac客户端: Client: Version: 1.12.3 API version: 1.24 Go version: go1.6.3 Git commit: 6b644ec Built: Thu Oct 27 00:09:21 2016 OS/Arch: […]

导致Docker内存秒杀的Nginx内容caching

我试图设置代理内容与Nginx的Docker内caching,但遇到我的容器内存问题。 实际的Nginx实现工作正常(页面正在caching和按预期方式服务),但只要页面开始caching,我的容器内存(以“docker stats”测量)就会非常迅速地攀升。 根据Nginx文档( https://www.nginx.com/blog/nginx-caching-guide/ ),每增加8,000个页面,我预计会有大约1MB的增长,但增长速度要快得多 – 大概每8000个大概40MB页面。 另外,当在我的容器里面运行“top”的时候,nginx进程的内存看起来很正常 – 几MB,而我的容器内存是暴涨的。 它几乎似乎喜欢caching页面本身,它们存储在一个特定的目录,正在占用内存? 这不应该是这样,因为只有caching键应该在内存中。 我想我已经testing了大约25,000页正在caching – 容器内存永远不会掉下来。 此外,如果我只是代理closurescaching的请求,没有容器内存高峰。 我正在运行一个非常基本的nginxconfiguration设置 – 非常详细的Nginx文档链接。 proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; server { … location / { proxy_cache my_cache; proxy_pass http://my_upstream; } } Docker镜像testing – 官方nginx镜像,alpine:安装nginx 3.4,centos:7安装nginx 经testing的Docker版本:Docker for Mac 1.12.1,Docker 1.11.2(在Kubernetes上) 显示内存增长的Grafana仪表板

如何清除docker容器内的caching内存

我在EC2中有一个docker swarm CE设置。 我有两个节点。 1名经理和1名工人。 主机实例types是Alpine Linux。 在Manager主机中,内存使用情况是: ~ $ free -m total used free shared buffers cached Mem: 7972 4996 2975 715 178 2857 -/+ buffers/cache: 1960 6011 Swap: 0 0 0 〜$ 现在当我login容器时, ~ $ docker exec -it c7cc255aca1f /bin/bash [root@c7cc255aca1f /]# And see the memory utilization: [root@c7cc255aca1f /]# free -m total used […]

为什么docker工看到容器正在达到rss限制?

我试图理解为什么限制决定了一个任务需要被杀死,以及它如何进行会计。 当我的GCE Docker容器杀死一个进程时,它显示如下所示: Task in /404daacfcf6b9e55f71b3d7cac358f0dc921a2d580eed460c2826aea8e43f05e killed as a result of limit of /404daacfcf6b9e55f71b3d7cac358f0dc921a2d580eed460c2826aea8e43f05e memory: usage 2097152kB, limit 2097152kB, failcnt 74571 memory+swap: usage 0kB, limit 18014398509481983kB, failcnt 0 kmem: usage 0kB, limit 18014398509481983kB, failcnt 0 Memory cgroup stats for /404daacfcf6b9e55f71b3d7cac358f0dc921a2d580eed460c2826aea8e43f05e: cache:368KB rss:2096784KB rss_huge:0KB mapped_file:0KB writeback:0KB inactive_anon:16KB active_anon:2097040KB inactive_file:60KB active_file:36KB unevictable:0KB [ pid ] uid tgid […]

当使用python psycopg2插入行时,docker postgres进程终止

数据库是docker中的postgresql-9.5.1。 我的主机有3.75 GB的内存,Linux。 在一些方法中,我使用psycopg2和下面的代码一个接一个地插入490000行。 student_list = [(name, surname, explanation)] args_str = ','.join(cur.mogrify("(%s,%s,%s)", x) for x in student_list) cur.execute('INSERT INTO students (name, surname, explanation) VALUES ' + args_str) 这使得我的数据库泊坞窗内存似乎已满,并给出了这些错误: 日志:服务器进程(PID 11219)由信号9:终止 详细信息:失败的进程正在运行 日志:终止任何其他活动的服务器进程 docker @ test_db警告:由于另一个服务器进程崩溃而终止连接 docker @ test_db详细信息:postmaster命令此服务器进程回滚当前事务并退出,因为另一个服务器进程exception退出并可能损坏共享内存。 docker @ test_db提示:一会儿你应该可以重新连接到数据库并重复你的命令。 docker @ test_db警告:由于另一个服务器进程崩溃而终止连接 docker @ test_db详细信息:postmaster命令此服务器进程回滚当前事务并退出,因为另一个服务器进程exception退出并可能损坏共享内存。 … docker @ test_db FATAL:数据库系统处于恢复模式 日志:所有服务器进程终止; 重新初始化 日志:数据库系统中断; […]