Giter Club home page Giter Club logo

erl_tool's Introduction

ERL_TOOL 运维工具集

基本使用方法

./erl_expect -sname <your_node_name>@<your_host_name> <script name>

例如

/erl_expect -noecho -sname msync@ebs-ali-beijing-msync1 common/monitor3.erl

参数

  • -noecho 不会显每条执行的命令
  • -echo 回显每条命令的执行结果
  • -setcookie 设置 cookie ,保证连接

常用的脚本

common/check_memory_binary.erl 检查 erlang binary 内存泄露

  • 参数 :
    • N : 显式 top N 个使用 binary 内存的进程信息,可选,默认 10。
  • 功能 :检查 binary 的内存使用情况
  • 例子 :
./erl_expect -noecho -sname msync@ebs-ali-beijing-msync1 -setcookie XXXXXXXX common/check_memory_binary.erl 3
total binary = 2.4298200607299805 Mb;
Pid = <7094.1598.0>, Size = 1.18951416015625 Mb, Info = [ekaf_sup,
                                                         {current_function,
                                                          {gen_server,loop,6}},
                                                         {initial_call,
                                                          {proc_lib,init_p,
                                                           5}}]
Pid = <7094.1777.0>, Size = 0.009746551513671875 Mb, Info = [{current_function,
                                                              {gen_fsm,loop,
                                                               7}},
                                                             {initial_call,
                                                              {proc_lib,
                                                               init_p,5}}]
Pid = <7094.1776.0>, Size = 0.009746551513671875 Mb, Info = [{current_function,
                                                              {gen_fsm,loop,
                                                               7}},
                                                             {initial_call,
                                                              {proc_lib,
                                                               init_p,5}}]

common/check_memory_heap.erl 检查 erlang 进程的普通内存使用情况

  • 参数 :
    • N : 显式 top N 个使用 binary 内存的进程信息,可选,默认 10。
  • 功能 :检查 heap 的内存使用情况
  • 例子 :
[easemob@ebs-ali-beijing-console erl_tool]$ ./erl_expect -noecho -sname msync@ebs-ali-beijing-msync1 -setcookie XXXXXXXX common/check_memory_heap.erl 3
{<7094.1598.0>,1580384,
 [{registered_name,ekaf_sup},
  {initial_call,{proc_lib,init_p,5}},
  {message_queue_len,0},
  {current_stacktrace,[{gen_server,loop,6,
                                   [{file,"gen_server.erl"},{line,382}]},
                       {proc_lib,init_p_do_apply,3,
                                 [{file,"proc_lib.erl"},{line,240}]}]}]}
{<7094.3205.0>,1222376,
 [{registered_name,msync_c2s},
  {initial_call,{proc_lib,init_p,5}},
  {message_queue_len,0},
  {current_stacktrace,[{gen_server,loop,6,
                                   [{file,"gen_server.erl"},{line,382}]},
                       {proc_lib,init_p_do_apply,3,
                                 [{file,"proc_lib.erl"},{line,240}]}]}]}
{<7094.1485.0>,601920,
 [{registered_name,user},
  {initial_call,{group,server,3}},
  {message_queue_len,0},
  {current_stacktrace,[{group,server_loop,3,
                              [{file,"group.erl"},{line,113}]}]}]}

common/monitor3.erl 检查 erlang 进程堆积情况

  • 参数 :
    • N : 显式 top N 个进程堆积的消息可选,默认 10。
  • 功能 :进程堆积情况和系统信息
  • 例子 :
[easemob@ebs-ali-beijing-console erl_tool]$ ./erl_expect -noecho -sname msync@ebs-ali-beijing-msync1 -setcookie EASEMOBAAAAAAAAAAEBS common/monitor3.erl 3
LIMIT process_count = 1600
LIMIT process_limit = 4194304
LIMIT port_count = 30979
LIMIT port_limit = 1048576
LIMIT build_type = opt
MEM total = 205910.6008529663 M
MEM processes = 86.6336898803711 M
MEM processes_used = 86.61495208740234 M
MEM system = 205823.96716308594 M
MEM atom = 1.7052545547485352 M
MEM atom_used = 1.6992969512939453 M
MEM binary = 205618.66123962402 M
MEM code = 58.05540466308594 M
MEM ets = 7.2806396484375 M
MAXQUEUELEN  0 PID <7094.23800.1359>
MESSAGE_INITIAL_CALL  <7094.23800.1359> {proc_lib,init_p,5}
CALL_STACK  <7094.23800.1359> : {current_stacktrace,
                                 [{p1_mysql_recv,loop,1,
                                   [{file,"src/p1_mysql_recv.erl"},
                                    {line,124}]}]}
MEMORY  <7094.23800.1359>  2664
STATUS  <7094.23800.1359>  waiting

编写脚本

脚本的内容是 erlang expressions ,不是 erlang form 。所以不支持 module , function 等等定义。 也就是说。

内置变量

  • Args 用户执行脚本的时候,输入的参数。

目录

  • common 下面是两种节点都可以使用的命令
  • ejabberd 是 ejabberd 节点可以使用的命令
  • msync 是 msync 下面可以使用的命令。

参考不同目录下面的 README.md 看具体命令的用法。

erl_tool's People

Contributors

clanchun avatar console-easemob avatar ericliang avatar letian0805 avatar wcy123 avatar zhuxiangkui avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.