文件句柄限制调整
echo "* soft nofile 204800" >> /etc/security/limits.conf
echo "* hard nofile 204800" >> /etc/security/limits.conf
echo "* soft nproc 204800" >> /etc/security/limits.conf
echo "* hard nproc 204800" >> /etc/security/limits.conf
echo fs.file-max = 6553560 >> /etc/sysctl.conf
查看文件句柄限制
sysctl -p
1. 日志level调整
lager:set_loglevel(lager_console_backend, debug).
logger:get_primary_config().
logger:set_primary_config(level,debug).
2. 进程数量查看
erlang:system_info(process_count).
3. 进程限制查看
erlang:system_info(process_limit).
4. 端口限制
erlang:system_info(port_limit).
5. 端口数量
erlang:system_info(port_count).
6. 内存占用
erlang:memory().
7. 查看哪些进程占用内存最高
spawn(fun() -> etop:start([{output, text}, {interval, 1},{lines, 20}, {sort, memory}]) end).
8. 查看占用内存最高的进程状态
erlang:process_info(pid(0,12571,0)).
erlang:process_info(self(), memory).
9. 手动gc回收,希望问题可以解决
erlang:garbage_collect(pid(0,12571,0)).
10. 批量查看系统状态
SchedId = erlang:system_info(scheduler_id),
SchedNum = erlang:system_info(schedulers),
ProcCount = erlang:system_info(process_count),
ProcLimit = erlang:system_info(process_limit),
ProcMemUsed = erlang:memory(processes_used),
ProcMemAlloc = erlang:memory(processes),
MemTot = erlang:memory(total),
io:format("abormal termination: "
"~n Scheduler id: ~p"
"~n Num scheduler: ~p"
"~n Process count: ~p"
"~n Process limit: ~p"
"~n Memory used by erlang processes: ~p"
"~n Memory allocated by erlang processes: ~p"
"~n The total amount of memory allocated: ~p"
"~n ",
[SchedId, SchedNum, ProcCount, ProcLimit,
ProcMemUsed, ProcMemAlloc, MemTot ]),
ok.
11. 开启observer
% werl -name bob@127.0.0.1 -setcookie emqttdsecretcookie
werl -name bob@127.0.0.1 -setcookie emqxsecretcookie
observer:start().
12.查看集群内的其他节点
nodes().
13.ping其他节点,pong代表连接成果, pang表失败
net_adm:ping('node@192.168.205.116').