erts_alloc_config
erts_alloc_config
模块
erts_alloc_config
模块摘要
Configuration tool for erts_alloc
描述
注
erts_alloc_config
是目前的一个实验工具,可能会受到向后不兼容的更改。
erts_alloc(3)
是一个Erlang运行时系统内部内存分配程序库.erts_alloc_config
用于帮助创建erts_alloc(3)
适合于有限数量的运行时场景的配置。配置erts_alloc_config
生产是作为建议,可能需要手动调整。
配置是基于有关许多运行时方案的信息创建的。显然不可能预见可能发生的每个运行时场景。重要的场景是那些在特定内存分配程序上导致最大或最小负载的方案。此上下文中的加载是分配的内存块的总大小。
目前的实施erts_alloc_config
集中在配置多块运营商。在保存运行时方案时收集的信息主要是当前和最大程度地使用多块运营商。如果更改使用多块运营商的参数发生更改,则先前生成的配置无效,erts_alloc_config
需要再次运行。它主要是影响使用多块载波的单块载波门限,但也可能是其他单块载波参数。如果需要另一个单个数据块载波参数值超过默认值,请在运行时使用所需的值erts_alloc_config
。
配置的创建方式如下:
- 通过
+Mea config
用于创建分配程序配置的Erlang运行时系统的命令行标志。它将禁用防止erts_alloc_config
做好自己的工作。注意,你应该不
使用创建的配置时使用此标志。还请注意,使用相同的amount of schedulers
在创建配置时,要使用配置在系统上使用。
- 用不同的场景运行应用程序(越多越好),并通过调用来保存每个场景的信息
save_scenario/0
。可能很难知道应用程序何时处于erts_alloc_config
重要的运行时场景。因此,一个好的方法可能是save_scenario/0
反复调用,例如每十秒一次。请注意,重要的是您的应用程序必须达到运行时方案,这对于erts_alloc_config
保存方案时非常重要; 否则,配置可能会执行失败。
- 当您已经覆盖了所有场景时,请调用
make_config/1
来创建一个配置。配置被写入您选择的文件。这个配置文件可以在启动时被Erlang运行时系统读取。传递命令行参数-args_file FileName
到erl(1)
命令。
- 产生的配置
erts_alloc_config
可能需要如前所述手动调整。不要修改生成的文件erts_alloc_config
; 相反,把你的修改放到另一个文件中,并在文件生成后加载这个文件erts_alloc_config
。也就是说,将-args_file FileName
稍后读取修改文件的参数放在命令行上,而不是-args_file FileName
读取由其生成的配置文件的参数erts_alloc_config
。如果一个内存分配参数出现多次,将使用最后一个版本,也就是说,您可以覆盖由生成的配置文件中的参数erts_alloc_config
。这样做可以简化您想要重新运行的事物erts_alloc_config
。
注
创建的配置erts_alloc_config
对于与创建配置时保存的场景非常不同的运行时场景,可能会执行糟糕的、非常可怕的操作。因此,建议您重新运行。erts_alloc_config
如果在进行配置时运行的应用程序发生了更改,或者应用程序上的负载自配置后发生了更改。您也应重新运行。erts_alloc_config
如果使用的Erlang运行时系统发生了更改。
erts_alloc_config
保存有关运行时方案的信息,并在自动启动的服务器中执行计算。服务器在名称下注册'__erts_alloc_config__'
。
出口
save_scenario() -> ok | {error, Error}
类型
save_scenario/0
保存有关当前运行时方案的信息。此信息稍后将在下列情况下使用:make_config/0
,或make_config/1
叫做。
第一次save_scenario/0
被称为服务器将启动。该服务器将保存运行时方案。所有保存的场景都可以通过调用删除stop/0
。
make_config() -> ok | {error, Error}
类型
这与调用相同make_config(group_leader())
。
make_config(FileNameOrIODev) -> ok | {error, Error}
类型
make_config/1
使用以前保存的信息。save_scenario/0
为了产生一个erts_alloc
配置。至少有一个场景必须保存。以前保存的所有场景都将在创建配置时使用。
如果FileNameOrIODev
是a string()
,make_config/1
将FileNameOrIODev
用作文件名。一个名为的文件FileNameOrIODev
被创建并且配置将被写入该文件。如果FileNameOrIODev
是io_device()
(请参阅模块的文档io
),配置将写入io
设备。
stop() -> ok | {error, Error}
类型
停止保存运行时方案的服务器。
另见
erts_alloc(3)
,,,erl(1)
,,,io(3)