我有以下设置:
在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守护进程的内存使用量不断增加.我该如何调试此问题?
我想在Linux中随机播放一个包含数百万行字符串的大文件.我试过'sort -R'但它很慢(16M大文件需要50分钟).是否有更快的实用程序,我可以使用它代替它?
有没有办法在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我忘记添加:我不想使用哈希表.我正在寻找一个非哈希解决方案.
我想在2D平面中创建一组非退化的大量随机点云(在整个集合中没有直线3个点).我有一个天真的解决方案,它生成一个随机浮点对P_new(x,y),并检查到现在生成的每一对点(P1,P2),如果点(P1,P2,P)位于同一行或不同.这需要对添加到列表中的每个新点进行O(n ^ 2)检查,使得整个复杂度为O(n ^ 3),如果我想生成超过4000个点(超过40分钟),则非常慢.有没有更快的方法来生成这些非简并点?
我正在尝试使用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) 任何人都可以帮我设置无头镀铬的代理服务器,同时在这里提到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
我希望将一个大文件(带有~17M行的字符串)拆分成多个文件,每个块中的行数不同.是否可以将数组发送到' split -l '命令,如下所示:
[
1=>1000000,
2=>1000537,
...
]
Run Code Online (Sandbox Code Playgroud)
以便将那么多行发送到每个块
我需要将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) 我有兴趣在RabbitMQ中实现"工作队列"模型.但是,我发现代理执行简单的循环操作,将任务分配给工作人员.
https://www.rabbitmq.com/tutorials/tutorial-two-java.html
如果某个特定的工作人员忙于执行非常繁重的任务并且还有其他自由工作者,则代理应该能够将队列中的消息分发给下一个可用的工作人员,而不是循环序列中的下一个工作人员.有没有办法使用RabbitMQ实现这一目标?
如何检测 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提前致谢。
\nperlbrew install perl编译并运行所有需要永久安装在我的机器上的测试(> 60分钟).是否可以使用perlbrew安装pre-built-test-run perl,就像apt-get那样可以节省时间?
我想将容器内的用户 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阶段解决这个问题,让这些设置可以在一个容器的基础上应用。
谢谢