-
请问使用etop监控输出Erlang top got garbage是什么意思20
小弟刚使用erlang,做一个广播服务器,有1w多个连接, 遇到两个问题:
1.使用etop监控程序时发现输出很多Erlang top got garbage,是不是内存泄露了呢?
Erlang top got garbage {trace_ts,<4897.30040.98>,out,
{gen,wait_resp_mon,3},
{1263,783491,9919}}
Erlang top got garbage {trace_ts,<4897.44.0>,out,
{ets,select_trap,1},
{1263,783491,55033}}
Erlang top got garbage {trace_ts,<4897.30043.98>,out,
{prim_inet,accept0,2},
{1263,783491,55055}}
Erlang top got garbage {trace_ts,<4897.19490.97>,out,
{gen,wait_resp_mon,3},
{1263,783491,58450}}
Erlang top got garbage {trace_ts,<4897.30042.98>,out,
{gen,wait_resp_mon,3},
{1263,783491,58535}}
Erlang top got garbage {trace_ts,<4897.44.0>,out,
{ets,select_trap,1},
{1263,783491,260009}}
========================================================================================
chatapp@localhost 02:58:10
Load: cpu 16 Memory: total 306706 binary 82753
procs 16313 processes 153462 code 3438
runq 0 atom 384 ets 14393
Pid Name or Initial Func Time Reds Memory MsgQ Current Function
----------------------------------------------------------------------------------------
<4897.44.0> chatets 88026518373491 121896 0 gen_server:loop/6
<4897.45.0> chatserver 2612 5147 24608 0 gen_server:loop/6
<4897.29320.98>proc_lib:init_p/5 546 634 24608 0 prim_inet:recv0/3
<4897.29505.98>proc_lib:init_p/5 537 284 6952 0 prim_inet:recv0/3
<4897.29448.98>proc_lib:init_p/5 499 387 11832 0 prim_inet:recv0/3
<4897.29471.98>proc_lib:init_p/5 440 270 5800 0 prim_inet:recv0/3
<4897.29374.98>proc_lib:init_p/5 403 270 5800 0 prim_inet:recv0/3
<4897.29352.98>proc_lib:init_p/5 396 437 24608 0 prim_inet:recv0/3
<4897.29521.98>proc_lib:init_p/5 381 274 5800 0 prim_inet:recv0/3
<4897.29404.98>proc_lib:init_p/5 357 386 16712 0 prim_inet:recv0/3
========================================================================================
2.看到很多crash日志,内容为:
CRASH REPORT <6431.14236.92> 2010-01-18 10:25:25
===============================================================================
Crashing process
initial_call
{chatserver,accept_loop,
['Argument__1','Argument__2','Argument__3',
'Argument__4']}
pid <6431.14236.92>
registered_name []
error_info
{error,{case_clause,{error,etimedout}},
[{chatserver,socket_loop,1},{proc_lib,init_p_do_apply,3}]}
ancestors [chatserver,<6431.2.0>]
messages []
links [#Port<6431.900585>]
dictionary []
trap_exit false
status running
heap_size 987
stack_size 24
reductions 424
是不是很gen_tcp:recv(Sock, 0)这里没有处理超时的错误呢,我看很多代码也没有做处理.
以上两个问题,各位有经验的老大能否给小弟个提示,谢谢!
2010年1月18日 11:05
目前还没有答案
相关推荐
**Erlang编程:Introducing Erlang** Erlang是一种函数式编程语言,由爱立信在1986年开发,主要用于构建高可用性、容错性和并发性的分布式系统。"Introducing Erlang"是Simon St. Laurent撰写的一本入门级教程,...
OTP是Erlang语言的一个框架,提供了多种库和工具,包括进程管理、分布式计算、错误恢复和性能监控等功能。 标题中的"erlang9.rar"是一个压缩文件,包含了Erlang 9的Windows 64位安装程序。"otp_win64_20.0.exe"是...
Erlang 的进程模型支持抢占式调度,通信机制基于消息传递,且有专门的监控和调试工具,如etop。 **Erlang 的系统组成** - 编译器:负责将Erlang代码编译为opcode - 库:包含各种标准模块和函数 - VM + 基本库:...
这涉及到监控ERTS的运行时参数,例如ETS(Erlang Term Storage)使用的内存、进程的数量和状态,以及SMP(对称多处理)支持程度等。 #### 3. 编码最佳实践 在Erlang开发中,最佳实践包括使用模式匹配、递归、消息...
### Erlang OTP系统文档知识点概览 #### 一、Erlang OTP系统文档概述 - **版权信息**:文档由爱立信公司版权所有,自1997年至2014年,所有权利保留。 - **版本信息**:文档版本为6.3,发布日期为2014年12月9日。 -...
在使用Erlang进行开发时,你可能需要用到以下工具和概念: - **Rebar3**:Erlang的构建和依赖管理工具,帮助你组织项目结构、编译代码和管理依赖。 - **OTP(Open Telephony Platform)**:Erlang的核心库,包含...
标题中的“在erlang项目中使用protobuf例子”指的是在Erlang编程环境中使用Protocol Buffers(protobuf)这一数据序列化工具。protobuf是由Google开发的一种高效、跨语言的数据表示和序列化格式,它允许开发者定义...
在本文中,我们将探讨如何使用Erlang编程语言和Yaws Web服务器开发RESTful服务。Erlang是一种面向并发和分布式系统的语言,以其高可靠性而著称,而Yaws是由Claes Wikström用Erlang编写的高性能Web服务器,能够处理...
在IT领域,Erlang是一种面向并发的、函数式编程语言,常用于构建高可用性和分布式系统,如电信、银行和互联网服务等。Elasticsearch(简称ES)则是一款流行的开源全文搜索引擎,广泛应用于大数据分析和实时搜索。...
OTP(Open Telecom Platform)是与Erlang一起使用的框架和库,旨在简化并发应用程序的设计和维护。这两本电子书——《Erlang and OTP in Action》和《Erlang程序设计》——都是深入学习Erlang语言和OTP的宝贵资源。 ...
《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF
这个“erlang资源”包含两本PDF书籍——《Erlang并发编程》和《Erlang入门手册》,它们是深入理解和学习Erlang语言的关键资料。 《Erlang并发编程》这本书可能涵盖了以下知识点: 1. **并发模型**:Erlang的并发...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson为了实现分布式实时、高可靠性系统而开发。Erlang以其强大的并行处理能力、容错性和易于构建大规模分布式系统的特点,在电信、金融和互联网等...
**Erlang B模型**是通信工程领域中的一个重要概念,特别是在无线通信系统设计中用于评估系统容量和服务质量。这个模型由丹麦工程师A.K. Erlang提出,主要用于预测电话交换系统的呼叫损失概率,即在给定话务量下,...
在IT领域,Erlang是一种强大的并发编程语言,主要用于构建高可用性、容错性和分布式系统。它以其轻量级进程、消息传递和热代码升级等特性而闻名。Unix(包括其衍生版本如Linux)是广泛使用的操作系统,具有丰富的...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、分布式和实时系统。版本24.3.4.4是Erlang的一个更新版本,包含了对先前版本的改进和修复。Erlang以其强大的错误...
OTP包含了许多模块,如进程管理、分布式计算、监控、错误恢复等,是Erlang开发的核心部分。"tar.gz"文件是Linux系统中常见的归档格式,它使用tar工具将多个文件打包,并使用gzip压缩算法进行压缩,以便于下载和存储...
8. 性能优化:OTP提供了多种工具来监控和优化Erlang应用的性能,如instrument模块可以收集运行时统计信息,erlang:system_info/1函数可以获取系统详细信息,而erlang:memory/0则用于查看内存使用情况。 9. 高可用性...
Erlang Shell 提供了一个交互式的环境,用户可以实时查看输出结果。 2. 顺序编程 顺序编程是 Erlang 编程语言的基础,用户可以使用 Erlang Shell 编写和运行顺序编程代码。顺序编程是指按照顺序执行的编程方式,...
Erlang社区和工具的发展为性能分析提供了坚实的基础,其中包括内存使用情况的监控、垃圾回收性能的评估以及实时性能数据的收集。 ##### 2.2 编码最佳实践 Erlang代码的编写有着特定的最佳实践,比如避免共享状态、...