小编gex*_*tra的帖子

docker如何使用其主机操作系统的CPU内核?

基于Docker基于LXC的事实,我的建议是Docker容器从其主机操作系统共享各种资源.我担心的是CPU内核.这是一个场景:

  • 主机Linux操作系统有8个核心
  • 我必须在上面的主机操作系统上部署一组docker容器.
  • 我需要部署的一些docker容器更适合使用2个内核

a)因此,如果我在该主机上运行所有docker容器,它们是否会根据需要消耗CPU /内核,就像它们是作为主机操作系统上的正常安装的应用程序一样运行?

b)docker容器是否会使用自己的进程,并且其中包含的所有处理都将粘贴到该父进程的CPU核心?

c)如何指定一个docker容器来使用多个内核(例如4个).我看到有一个-C标志可以指向核心ID,但似乎没有选项指定容器随机选择N个核心.

lxc docker

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

应该使用哪个Docker基础映像在没有任何其他操作系统的容器中安装应用程序?

我在我的GUEST OS上运行了一个Docker守护进程,它是CentOS.我想以一种孤立的方式安装软件服务,我不需要在我的Docker容器中使用另一个操作系统映像.

我想拥有一个Docker容器,只包含我要安装的软件应用程序的附加二进制文件和库.

我可以使用Docker中的"whiteglove/blank"基本图像吗?我想要一个非常精简的容器,它作为我的GUEST操作系统提供的起点.那可能吗 ?

docker

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

如何在陷阱命令后解开

我有一个错误陷阱如下:

trap failed ERR
function failed {
    local r=$?
    set +o errtrace
    set +o xtrace
    echo "###############################################"
    echo "ERROR: Failed to execute"
    echo "###############################################"
    # invokes cleanup
    cleanup
    exit $r
}
Run Code Online (Sandbox Code Playgroud)

我的代码中有一部分我预计会出现错误:

command1
command2
command3
set +e #deactivates error capture
command4_which_expects_error
set -e #re-activates error capture
command5
Run Code Online (Sandbox Code Playgroud)

总的来说,我需要在执行command4_which_expects_error时忽略陷阱

套+ E似乎并没有禁用的陷阱.任何其他"解开"然后"重新陷阱"的方法?

bash

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

SVG缩放的最佳方法是什么?转换比例或视图?

当我双击该区域时,我已经创建了用于缩放SVG区域的代码.我使用变换比例属性来实现这一点,将当前比例乘以一个因子(例如1.2,得到20%的缩放).

我可以对viewbox属性的第二个和第三个参数执行相同的操作.减小它们将导致区域元素缩放,反之亦然.

对这两种不同方法的利弊有何看法?

svg

14
推荐指数
1
解决办法
4119
查看次数

如何将erlang float格式化为整数(不带小数点)

我需要生成一个稍后会打印的字符串,并且不能有小数点.为此,我试图在Erlang中使用io_lib:format模块,但我不确定实现此目的的适当格式是什么.

例如,我可以使用以下.1精度,但不是.0

io_lib:format("~.2f", [789.1234]).
789.12

io_lib:format("~.1f", [789.1234]).
789.1

io_lib:format("~.0f", [789.1234]).
** exception error: bad argument
 in function  io_lib:format/2
    called as io_lib:format("~.0f",[789.1234])
Run Code Online (Sandbox Code Playgroud)

我只需要:

  • 789.1234产生字符串"789"

  • 123.0产生字符串"123"

我知道我可以进行"重新"替换,但我正在努力寻找一种格式优雅的方式.

erlang

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

当方法实际上没有丢失时,界面转换恐慌

不知何故,在运行时,我收到以下恐慌消息,即使在我看来该方法已正确定义到实现该接口的结构.

panic: interface conversion: schema.MerchantResultset 
is not search.ResultsetInterface: missing method Add
Run Code Online (Sandbox Code Playgroud)

这是界面蓝图

type ResultsetInterface interface {
    Init(string)
    CacheSet(context.Context) error
    CacheSetPart(context.Context, int) error
    CacheGet(context.Context, string) error
    Add(interface{})
    AddResultset(interface{})
}
Run Code Online (Sandbox Code Playgroud)

以下是在运行时报告丢失的方法,该方法分配给我的struct MerchantResultset.

func (mr *MerchantResultset) Add(item interface{}) {
    mr.Data = append(mr.Data, item.(Merchant))
}
Run Code Online (Sandbox Code Playgroud)

我在某种程度上非常困惑,试图了解这里实际需要什么

go

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

如何识别ETS表的确切内存大小?

给具有数据的ETS表中,方式/ 1函数返回表中的各种属性,包括一个尺寸值是特定于行数,而不是实际尺寸.

有没有办法计算ETS表占用的内存量?

ets:new( mytable, [bag, named_table, compressed]),
ets:insert( mytable, { Key, Value } ),
....
ets:info ( mytable ).
Run Code Online (Sandbox Code Playgroud)

erlang ets

8
推荐指数
1
解决办法
3242
查看次数

如何在分布式环境下将数据附加到Riak密钥?

使用Riak我希望以一种方式顺序追加数据,这样我就可以获得我不时附加的所有数据.想想日志,如果我选择增加的日志行并将它们转移到riak,在某些时候我想要重新构建我所附加的内容.

我想通过为此目的创建一个新的存储桶,然后添加由序列号或日期时间戳定义的键,然后将内容添加到它,然后使用列表键API并重新构建我需要的数据.问题在于列表键API效率不高,建议使用生产.我喜欢这种方法的是数据没有并发写入问题(没有锁/等),因为所有键都是独立的.

另一种方法是使用单个密钥,打开它并附加到它,但我非常担心并发/锁定问题.此操作将在分布式环境下执行,肯定是一个糟糕的选择

问题:在Riak中有任何其他方法吗?对键的任何附加模式?

riak

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

什么是最有效的erlang模块,用于在Term下存储大量的键/ Term-Values

关注读取性能,我想创建一个术语,如Orddict或Proplist,其中包含大量(100,000个)条目,每个条目包含一个ID和一个Term值.这个封装术语应该能够返回存储在其键下的值,就像Orddict能够做到的那样.

example:

 K001 - Term001
 K002 - Term002
 K003 - Term003
Run Code Online (Sandbox Code Playgroud)

包含整个集合的结果Term需要从一个函数传递到另一个函数,用于多个计算目的,而不将其存储在持久性存储中以避免磁盘I/O. 我还选择在此阶段不使用内存缓存来避免此时的架构复杂性,因此我的重点是让所有这些都只是密钥搜索.

Orddicts是密钥排序的,与普通的Dict相比,它增强了密钥的搜索.我不知道任何其他Erlang模块可以在其Term中嵌入更有效的索引机制.

对于比Orddict更好的方法的任何建议?

erlang

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

如何将有向图传递给不同的进程和节点?

我在进程 A 上创建了一个有向图术语,我想将此有向图传递给另一个节点上的进程。每当我在另一个过程中使用这个有向图时,我都会收到错误,例如:

** {badarg,
   [{ets,insert,[598105,{"EPqzYxiM9UV0pplPTRg8vX28h",[]}],[]},
    {digraph,do_add_vertex,2,[{file,"digraph.erl"},{line,377}]},
Run Code Online (Sandbox Code Playgroud)

因为有向图是基于 ETS 的,所以这似乎要复杂得多,这使得有向图在创建过程中几乎是独立的。我发现这个条目揭示了一个类似的问题:ETS on a different process

我知道我可以在服务器中创建有向图,然后通过 otp 消息连接到它,但我不能在我的架构中这样做。所有节点都可以使用旨在将状态作为条款传递的特定方法进行通信。

在我看来,将有向图发送到无法直接相互通信的不同节点是不可能的。总的来说,有向图似乎不能直接序列化。我在想我可以“展开”有向图作为顶点和边的列表,然后在另一个过程中传输和重新创建它(效率不高、性能不高或优雅)。关于序列化它的更好方法的任何想法?有没有办法从 ETS 存储中序列化有向图状态?

有什么想法吗 ?

erlang

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

标签 统计

erlang ×4

docker ×2

bash ×1

ets ×1

go ×1

lxc ×1

riak ×1

svg ×1