小编alp*_*cod的帖子

Docker守护程序由于长时间运行的进程中的日志而导致内存泄漏

我有以下设置:

  1. Perl服务在容器中运行并将日志写入STDERR
  2. logspout将这些日志发送到远程服务器进行存档

在600 MB RAM机器中.

我还定期截断日志:

/var/lib/docker/containers/CID/CID-json.log

这里建议避免100%的磁盘场景.

问题

Docker守护程序启动时内存使用率较低,最初为1%,运行容器2天后缓慢增加到40%.

参考

这个问题这个问题中已经讨论过Docker守护进程内存泄漏.但他们两人现在都在关闭,并在提交时合并.我正在运行Docker 的最新主要版本(Docker版本1.4.0,版本4595d4f),但仍面临单调增加的内存使用问题.

编辑:我做了这个实验:只要运行在容器中的bash进程,打印出了不少线标准错误,码头工人守护进程的内存使用量加速非常快

即使基础日志文件(/var/lib/docker/containers/CID/CID-json.log)被清除,docker 是否会执行一些日志缓冲并且不会释放内存?

显然没有办法清除日志.将这个承诺解决这个问题,在长时间运行的任务是什么?

我不知道为什么docker守护进程的内存使用量不断增加.我该如何调试此问题?

memory lxc docker dockerfile

25
推荐指数
1
解决办法
1万
查看次数

在Linux中对文件中的行进行随机播放的最快方法

我想在Linux中随机播放一个包含数百万行字符串的大文件.我试过'sort -R'但它很慢(16M大文件需要50分钟).是否有更快的实用程序,我可以使用它代替它?

unix linux bash

16
推荐指数
2
解决办法
1万
查看次数

在O(N)时间内在数组中查找重复项

有没有办法在O(N)时间内找到N个元素数组中的所有重复元素?

例:

输入: 11, 29, 81, 14, 43, 43, 81, 29

输出: 29, 81, 43

对输入进行排序并进行线性扫描以检测重复项会破坏顺序并提供输出:29,43,81.

{0,1,...N-1}按照给定数组排序另一个索引数组{1,4,2},然后对得到的索引进行排序,得到{1,2,4}我们{29,81,43},但这需要O(N logN)时间.

是否有O(N)算法来解决这个问题?

PS我忘记添加:我不想使用哈希表.我正在寻找一个非哈希解决方案.

c++ algorithm

12
推荐指数
2
解决办法
6499
查看次数

在2D - C++中生成非退化点集

我想在2D平面中创建一组非退化的大量随机点云(在整个集合中没有直线3个点).我有一个天真的解决方案,它生成一个随机浮点对P_new(x,y),并检查到现在生成的每一对点(P1,P2),如果点(P1,P2,P)位于同一行或不同.这需要对添加到列表中的每个新点进行O(n ^ 2)检查,使得整个复杂度为O(n ^ 3),如果我想生成超过4000个点(超过40分钟),则非常慢.有没有更快的方法来生成这些非简并点?

c++ algorithm computational-geometry

10
推荐指数
1
解决办法
1183
查看次数

来自Docker hub私有注册表的Docker远程api

我正在尝试使用docker远程API 从Docker hub https://registry.hub.docker.com/u/myname/myapp中托管的私有存储库中提取docker映像.该文档不清楚如何在POST请求中指定身份验证凭据

curl -XPOST -H "X-Registy-Auth: base64_encoded_authconfig_object" "http://localhost:4243/images/create?fromImage=myname/myapp"
Run Code Online (Sandbox Code Playgroud)

也没有详细说明如何生成authconfig.

这里讨论了使用如下结构在基础64编码的json中发送:

{
  "index_url": {
    "username": "string",
    "password": "string",
    "email": "string",
    "serveraddress": "string"
  }
}
Run Code Online (Sandbox Code Playgroud)

但是没有解释什么是index_url和serveraddress.是吗

index_url = https://registry.hub.docker.com/u/myname/myapp
serveraddress = https://registry.hub.docker.com
Run Code Online (Sandbox Code Playgroud)

上面的配置给了我404,可能是注册中心私有仓库没有被识别.

我也试过base 64编码我的〜/ .dockercfg的内容

{
  "https://index.docker.io/v1/": {
    "auth":"xxxxxxxxxxxxxxxxxxx==",
    "email":"myname@myemail.com"
  }
}
Run Code Online (Sandbox Code Playgroud)

你能告诉我如何生成base64编码的authconfig对象并使上面的curl命令工作.

提前致谢

Docker版本

Client version: 0.11.1
Client API version: 1.11
Go version (client): go1.2.1
Git commit (client): fb99f99
Server version: 0.11.1
Server API version: 1.11
Git commit (server): fb99f99
Go version (server): …
Run Code Online (Sandbox Code Playgroud)

docker dockerpy

9
推荐指数
1
解决办法
7699
查看次数

Golang gin Gonic Web 框架代理路由到另一个后端

如何在Gin Gonic web golang 框架中将一些路由的 Web 请求反向代理到另一个后端

有没有办法在 Handle 函数中直接转发,如下图所示?

router := gin.New() router.Handle("POST", "/api/v1/endpoint1", ForwardToAnotherBackend)

go go-gin

9
推荐指数
2
解决办法
5966
查看次数

无头镀铬代理服务器设置

任何人都可以帮我设置无头镀铬的代理服务器,同时在这里提到Node.js中的灯塔镀铬启动器

const launcher = new ChromeLauncher({
    port: 9222,
    autoSelectChrome: true, // False to manually select which Chrome install.
    additionalFlags: [
      '--window-size=412,732',
      '--disable-gpu',
      '--proxy-server="IP:PORT"',
      headless ? '--headless' : ''
    ]
  });
Run Code Online (Sandbox Code Playgroud)

但是,上面的脚本根本没有命中我的代理服务器.Chrome似乎回退到DIRECT://与目标网站的连接.

关于在无头chrome的上下文中使用HTTP/HTTPS代理服务器的另一个资源就是这个.但它没有给出如何从Node.js使用它的任何示例.

google-chrome node.js headless-browser lighthouse google-chrome-devtools

7
推荐指数
1
解决办法
5286
查看次数

在Linux中将文件拆分为不等的块

我希望将一个大文件(带有~17M行的字符串)拆分成多个文件,每个块中的行数不同.是否可以将数组发送到' split -l '命令,如下所示:

[
 1=>1000000,
 2=>1000537,
 ...
]
Run Code Online (Sandbox Code Playgroud)

以便将那么多行发送到每个块

unix linux bash

6
推荐指数
1
解决办法
1911
查看次数

榆树复杂的自定义JSON解码器

我需要将JSON解码为elm类型,如下所示:

类型

type User = Anonymous | LoggedIn String

type alias Model =
  { email_id : User
  , id : Id
  , status : Int
  , message : String
  , accessToken : AccessToken
  }
Run Code Online (Sandbox Code Playgroud)

JSON消息1

{
  "status": 0,
  "message": "Error message explaining what happened in server"
}
Run Code Online (Sandbox Code Playgroud)

进入类型值

Model {
   "email_id": Anonymous
   , id: 0
   , status: 0
   , message: json.message
   , accessToken: ""
}
Run Code Online (Sandbox Code Playgroud)

JSON消息2

{
  "status": 1,
  "email_id": "asdfa@asdfa.com"
  "token": "asdfaz.adfasggwegwegwe.g4514514ferf"
  "id": 234
}
Run Code Online (Sandbox Code Playgroud)

进入类型值

Model {
   "email_id": …
Run Code Online (Sandbox Code Playgroud)

elm

6
推荐指数
1
解决办法
1261
查看次数

RabbitMQ Non-Round Robin Dispatching

我有兴趣在RabbitMQ中实现"工作队列"模型.但是,我发现代理执行简单的循环操作,将任务分配给工作人员.

https://www.rabbitmq.com/tutorials/tutorial-two-java.html

如果某个特定的工作人员忙于执行非常繁重的任务并且还有其他自由工作者,则代理应该能够将队列中的消息分发给下一个可用的工作人员,不是循环序列中的下一个工作人员.有没有办法使用RabbitMQ实现这一目标?

rpc distributed-computing message-queue amqp rabbitmq

5
推荐指数
1
解决办法
3343
查看次数

Node JS 检测字符串编码

如何检测 Node JS 中的字符串编码并将该字符串转换为有效的 unicode 字符串。

\n\n

例如,如何检测 CP437 编码的字符串并将其转换为有效的 unicode 字符串。

\n\n

输入:\xc2\xa8Quin ha enga\xc2\xa4ado

\n\n

输出:\xc2\xbfQui\xc3\xa9n ha enga\xc3\xb1ado

\n\n

我希望动态检测编码类型并将字符串转换为有效的 unicode 字符串。\n提前致谢。

\n

unicode utf-8 node.js

5
推荐指数
1
解决办法
2万
查看次数

Perlbrew安装perl需要永远,只需安装已编译的perl

perlbrew install perl编译并运行所有需要永久安装在我的机器上的测试(> 60分钟).是否可以使用perlbrew安装pre-built-test-run perl,就像apt-get那样可以节省时间?

perl perlbrew

4
推荐指数
1
解决办法
398
查看次数

Docker 用户命名空间将容器中的用户映射到主机

我想将容器内的用户 postgres 或 root 映射到主机上的用户 myuser。网上有很多关于这个的参考,但我不太清楚如何实现以下目标:

是否有一种简单的方法可以通过 docker-run 级别的简单命令行标志将容器内的任意用户映射到主机中的用户

将容器内的 root 用户映射到主机上的 myuser

docker run --user-remap "mysuser:root" -p 6379:6379 redis:alpine
Run Code Online (Sandbox Code Playgroud)

将容器内的 postgres 映射到主机上的 myuser

docker run -it -p 5431:5432 --user-remap "myuser:postgres" --rm -v /home/myuser/data:/var/lib/postgresql/data postgres:9.6.0
Run Code Online (Sandbox Code Playgroud)

我不想对我的所有容器应用相同的设置。因此,通过应用在 docker 守护进程级别执行此操作

sudo docker daemon --userns-remap myuser
Run Code Online (Sandbox Code Playgroud)

并更新 /etc/passwd、/etc/group、/etc/subuid、/etc/subgid 无助于解决我的问题。有没有办法在docker run阶段解决这个问题,让这些设置可以在一个容器的基础上应用。

谢谢

postgresql namespaces docker dockerfile docker-compose

4
推荐指数
1
解决办法
1894
查看次数