文章列表
作为一名程序员,随着工作经验的增长,如果足够幸运的话,终有一日,我们都将会直面大型系统的挑战。最初的手忙脚乱总是难免的,经历过最初的迷茫之后,你会惊讶地发现这是一个完全不同的“生态系统”。要在这样的环 ...
linux 下性能分析工具之top
- 博客分类:
- linux
TOP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。
TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.
top - 12:38:33 up 50 days, 23:15, 7 users, load average: 60.58, 61.14, 61.22 ...
前段时间项目压测,顺利通过,现在总结下压测过程中主要的瓶颈以及问题
1,首先是行走的广播问题,当大量玩家在同一个屏幕涌入的时候,基于九宫格广播一样在行走广播的时候会有大量的广播消息,造成带宽全部被占用完,服务器消息处理不过来,大量消息堆积导致服务器内存暴涨而挂掉,所以在这种情况下解决办法是限制同屏幕可视玩家,使同屏幕玩家在一个合理的值,超过这个水位线的其他玩家将不予显示,当有同屏幕玩家离开你的范围时,做一次补给同屏幕的玩家,这样保证同屏幕玩家数量在一个合理的范围内。
2.聊天广播,聊天消息也是比较频繁的,所以我们应该限制收到的聊天广播消息,当缓存的消息两超过预设的值时候,证明消息比较频繁,服务器 ...
1、概述
监控,在检查系统问题或优化系统性能工作上是一个不可缺少的部分。通过操作系统监控工具监视操作系统资源的使用情况,间接地反映了各服务器程序的运行情况。根据运行结果分析可以帮助我们快速定位系统问题范围或者性能瓶颈点。
nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,相对于其它一些系统资源监控工具来说,nmon所记录的信息是比较全面的,它能在系统运行过程中实时地捕捉系统资源的使用情况,并且能输出结果到文件中,然后通过nmon_analyzer工具产生数据文件与图形化结果。
nmon所记录的数据包含以下一些方面(也是我们在寻找问题过程中所关注的资源点 ...
vnStat是一个Linux下的网络流量监控软件,它记录指定网卡每日的传输流量日志。它并非基于网络包的过滤,而是分析文件系统- /proc, 所以vnStat无需root的权限就可使用。
vnStat 官网: http://humdi.net/vnstat/目前最新的是 vnstat-1.10.tar.gz
...
vmstat是一个十分有用的Linux系统监控工具,使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。
一、前言
很显然从名字中我们就可以知道vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具,但是怎样通过vmstat来发现系统中的瓶颈呢?在回答这个问题前,还是让我们回顾一下Linux中关于虚拟内存相关内容。
二、虚拟内存运行原理
在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间。当系统运行所需内存超过实际的物理内存,内核会释放某些进程所占用但未使用的部分或所有物理内存,将这部分 ...
多函数匹配与单函数判断的性能比较(转载)
- 博客分类:
- erlang
Erlang中应用了大量的匹配语法,那么到底是多函数的when匹配性能好还是单个函数里的case of性能更加出众,马上做个比较:
程序echo1:
C代码 收藏代码
-module(echo1).
-export([start/1]).
start(N) ->
statistics(runtime),
run(N,1),
{_, T} = statistics(runtime),
io:format("total running time: ~p ...
在素数求解,兼谈Erlang的性能特性一文中比较了Erlang和Java实现的素数求解效率。
在我的MacBook(Intel Core Duo,2GHz,2GB,Leopard 10.5.8)上,计算1000000以内素数:
Java程序的计算时间大概在2850ms左右。
C程序的计算时间在890ms左右。
Erlang程序的计算时间在3900ms左右
采用NIF方式实现的素数查找,计算时间在900ms左右,效率与C程序的相差无几,确实如愿提高了计算效率。
不过个人觉得像文件操作还是使用Port/Driver比较好的,因为对文件的使用可能是一系列持续的操作过程,文件句柄这样的东西还是比较 ...
查看节点文件句柄数量(转载)
- 博客分类:
- erlang
很多同学在使用erlang的过程中, 碰到了很奇怪的问题, 后来查明都是文件句柄不够用了, 因为系统默认的是每个进程1024. 所以我们有必要在程序运行的时候, 了解这些信息, 以便诊断和预警.
下面的这个程序就演示了这个如何查看节点的可用句柄数目和已用句柄数的功能.
首先确保你已经安装了lsof, 我的系统是ubuntu可以这样安装.
root@ubuntu:~# apt-get -y install lsof
root@ubuntu:~# cat fd.erl
Java代码 收藏代码
-module(fd).
-export([start/0]).
...
断言位置的选择:谁犯错谁异常(转载)
- 博客分类:
- erlang
比如某gen_server:
Erlang代码 收藏代码
...
hello(A,B,C) when is_atom(A),is_integer(B),is_binary(C) ->
gen_server:cast(?SERVER,{hello, A, B, C}).
handle_cast({hello, A, B, C}, State} ->
....
{noreply, State}.
...
...
进程创建速度(转载yufeng老大的文章)
- 博客分类:
- erlang
How fast can Erlang create processes?
博客分类:
erlang
ErlangDebianLinuxCacheOS
原文地址: http://www.lshift.net/blog/2006/09/10/how-fast-can-erlang-create-processes
Very fast indeed.
1> spawntest:serial_spawn(1).
3.58599e+5
That’s telling me that Erlang can create and tear down processes at a ...
小例子http://www.process-one.net/en/wiki/ejabberd_HTTP_request_handlers/
处理GET
http://langxianzhe.com?version=1&token=c617b5435134c1735255edeb4f4b93b4&test=Test
关键是怎么处理Rquest#request.q中数据 以[{},{}]形式组成
我暂时采用了下面的方法 []中元素顺序 需 和url 中的顺序一致
Erlang代码 收藏代码
process([], #request{method = 'GE ...
erlang网络调优
- 博客分类:
- erlang
原文网址:erlang网络编程的几个性能调优和注意点
原文作者:coderplay
前些天给echo_server写了个非常简单的连接压力测试程序,
下载: stress_test.erl
-module(stress_test).
-export([start/0, tests/1]).
start() ->
tests(12345).
tests(Port) ->
io:format("starting~n"),
spawn(fun() -> ...
Erlang 实践杂记(转载)
- 博客分类:
- erlang
发表时间:2012-05-12
< > 猎头职位: 北京: 【北京】数据分析高级工程师/经理
相关文章:
Erlang开发建议(杂记版)
Erlang类型及函数声明规格
List杂记
推荐群组: struts2
更多相关推荐
Erlang
Erlang 实践杂记
一、列表、字符串相关
1、场景描述
当下,Erlang和php交互,用mochiweb和ibrowse的方式比较多,ibrowse 需要发送url给php,url为字符串。若需要string:concat() 的变量不为string类型,就需要进行转化。前提是,Erl ...
转载请注明:来自http://blog.csdn.net/skyman_2001
一、ets
1. ets效率建议(原文出处:http://pro.it165.net/html/201110/950.html)
(1) ets表的底层是由哈希表实现的,不过有序集例外,它是由平衡二叉树实现的。 所以不管是插入还是查找,集合的效率要比有序集高.
(2) 可重复袋要比袋的效率要高, 因为袋要和原来的记录比较是否有相同的记录已经插入. 如果一份大数据,相同的记录越多,袋的效率就越慢.
(3) 一张ets表是由创建它的进程所拥有, 当此进程调用ets:delete或者进程挂了的时候, 表会被删除. ...