不管在erlang的shell下还是脚本里,启动参数都是非常有用的,抽空儿整理下erlang的常用启动参数:

+A size   异步线程池的线程数,范围为0~1024,默认为10

+P Number|legacy   最大进程数,范围为1024-134217727 ,默认为  262144

+K true | false  是否启用的kernel的poll机制,默认为false

-config Config  加载指定的配置文件,config.config

-heart  开启erlang的心跳检测

   这里细说下这个参数:% erl -heart ... 开启心跳监测,默认为60s;

     还有一种是 % erl -heart -env HEART_BEAT_TIMEOUT 30 ... 如果这里添加 -env HEART_BEAT_TIMEOUT 30 参数,可修改心跳监测时间,范围为:10 < X <= 65535(s).

还有一个参数是:% erl -heart -env ERL_CRASH_DUMP_SECONDS (0、1、seconds)三种情况,用于分析dump文件.

    

-name Name  运行分布式节点名

-setcookie Cookie  在一个分布式集群中,不同节点间设置同一个cookie,保证节点互联

-boot File  用来启动系统,一般设置为start_sasl

-env Variable Value  用来设置宿主系统环境变量

+W w | i  设置error_logger的告警信息,+W w 为waring  +W i 为info report

+e Number 设置最大ets表数量  没有设置默认1400  可设置 ERL_MAX_ETS_TABLES,用 -env ERL_MAX_ETS_TABLES

-pa Dir1 Dir2 ...  添加指定代码目录由开始代码的路径 ,如:code:add_pathsa/1

-pz Dir1 Dir2 ...  添加指定的目录的代码路径的末端 ,如:code:pathsz/1

-remsh Node  启动远程节点

## Increase number of concurrent ports/sockets
-env ERL_MAX_PORTS 4096

## Tweak GC to run more often
-env ERL_FULLSWEEP_AFTER 10

-env ERL_MAX_ETS_TABLES 200000

18904086003

+sbt db        
 +sub true                                         %% R17版本之后,调度器测量 (多核平均分配cpu)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
erlang 默认启动参数更多的是针对电信平台实时特性,简单调整参数能很大程度降低CPU消耗,提高处理能力。

1. 关闭spin_wait

  设置参数:+sbwt none

erlang 调度器CPU利用率低排查,关闭spin_wait 可能增加了调度器需要唤醒延时。

关闭后CPU 基本能够简单30%以上,且几乎没有任何副作用,调度器唤醒微妙级,延时可忽略。

2. 调度器唤醒策略

  默认设置:+swt medium

  默认设置下,长时间运行后部分node运行进入一种非正常状态,如:不管高峰还是低峰,cpu 200%一条直线,且在高峰期间处理不过来,造成timeout,

  也就是说,除了前两个调度器,后面的调度器都睡死了,业务大量堆积也无法唤醒。

  

  解决方案:

  1. 定时维护性重启,当然业务允许的话,对于类似长连接服务就不行了

  2. 调整:+swt low (whatsapp ppt 中提到),CPU占用稍高

  3. 使用R17 +sub true,保证每个调度器业务平均

  当然: +swt very_high 能够再次降低30%+ 的cpu

  同时也很大程度增加 调度器睡死的几率,会不会睡死看业务服务状态,可以观察,对性能提升还是很有帮助的。

erlang启动参数记录的更多相关文章

  1. erlang启动参数

    出自: http://blog.sina.com.cn/s/blog_96b8a154010123cc.html

  2. java虚拟机启动参数分类详解

    官方文档见: http://docs.sun.com/source/819-0084/pt_tuningjava.html java启动参数共分为三类:其一是标准参数(-),所有的JVM实现都必须实现 ...

  3. linux内核启动参数

    Linux内核启动参数   Console Options                         参数 说明 选项 内核配置/文件   console=Options 用于说明输出设备 tt ...

  4. JVM启动参数手册——JVM之八

    jdk1.4.2 JVM官方地址:http://java.sun.com/j2se/1.4.2/docs/guide/vm/index.html 标准和非标注参数(for windows):http: ...

  5. Eclipse 配置Tomcat启动参数 Java EE IDE for Web Developers. Version: Helios Service Release 2

    因为在开发的过程中出现了PerGen Space.所以需要修改Tomcat的启动参数,郁闷的事情是公司不使用盗版,因此离开了熟悉的一塌糊涂的MyEclipse界面还真的找不到配置Tomat启动参数的地 ...

  6. java虚拟机启动参数整理

    java启动参数 共分为三类其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容:其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不 ...

  7. JVM常用启动参数

    本文参考 jvm参数设置大全:http://www.cnblogs.com/marcotan/p/4256885.html 堆内存分配及gc:http://www.cnblogs.com/weiguo ...

  8. JVM 启动参数及原理 转

    Java虚拟机(JVM)是Java应用的运行环境,从一般意义上来讲,JVM是通过规范来定义的一个虚拟的计算机,被设计用来解释执行从Java源码编译而来的字节码.更通俗地说,JVM是指对这个规范的具体实 ...

  9. JVM启动参数大全

    java启动参数共分为三类: 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足, ...

随机推荐

  1. 面向对象oop思想

    OOP核心思想:封装,继承,多态. 理解: 对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象.而每继承性是对具有层次关系的类的属性和操作进行共享的 ...

  2. 在idea中部署远程Tomcat

    实现效果:在idea中点击run时,自动将代码编译并上传.部署到远程服务器中 和传统的在本地服务器相比较的优势:1.节省开发者开发机的资源,省去了本地服务器的CPU.内存的占用.2.如果开发的程序为A ...

  3. Pebbles(hdu 2167)

    题意:给定一个N*N的方格,让你在里面取出一些数使其和最大,要求每一个数不能与其相邻的8个数同时取出. /* 和hdu1565差不多,只不过在更新的时候考虑斜上方的格子对该格子的影响. */ #inc ...

  4. SharePoint 2013 Custom MasterPage

    <%@Master language="C#"%> <%@ Register Tagprefix="SharePoint" Namespace ...

  5. MSB与LSB Big Endian Little Endian

    Most Significant Bit, Last(Least) Significant Bit 最高有效位(MSB) 指二进制中最高值的比特.在16比特的数字音频中,其第1个比特便对16bit的字 ...

  6. Sort colors系列

    75. Sort Colors 问题描述: 给一个包含n个数字的数组,其中有0,1,2:排序使得所有相同的数字相邻,且按照0,1,2的顺序. 思路: (1)计数排序: 需要扫两遍数组,一遍统计个数,第 ...

  7. Yii查看(输出)当前页面执行的sql语句

    在Yii框架下查看当前页面执行的所有sql语句的方法,主要是通过配置相关文件来达到调试sql的目的,具体方法如下: (1)修改 index.php 开启调试模式 在 index.php 文件内增加如下 ...

  8. 微信JSSDK分享功能详解

    本文以微信分享到朋友圈,分享给微信好友为例为参考,进行调用测试,想添加其他的功能,自行查看开发人员文档即可 工欲善其事,必先利其器,好好利用下边的帮助工具,都是腾讯给开发人员的工具 1.微信开发者说明 ...

  9. Hibernate游记——装备篇《一》(基础配置详解)

    Hibernate配置文件可以有两种格式,一种是 hibernate.properties ,另一种是 hibernate.cfg.xml 后者稍微方便一些,当增加hbm映射文件的时候,可以直接在 h ...

  10. k8s之ingress及ingress controller

    1.ingress概述 图解:第一个service起到的作用是:引入外部流量,也可以不用此方式,以DaemonSet控制器的方式让Pod共享节点网络,第二个service的作用是:对后端pod分组,不 ...