自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

收藏夹+记事本

仅作个人记录

  • 博客(18)
  • 收藏
  • 关注

转载 Erlang服务器内存耗尽调查(转)

本文描述Erlang服务器内存耗尽bug的解决过程。首先说明一下问题,服务器1千多人在线,16G内存快被吃光。玩家进程占用内存偏高:接下来是解决过程。第一步:查看进程数目是否正常? erlang:system_info(process_count). 进程数目合理第二步:查看节点的内存消耗在什么地方?> erlang:memory().[{tot

2016-12-28 01:59:57 343

转载 Erlang调度器详解(转)

#在翻完了Erlang垃圾回收机制详解之后, 正要准备翻译作者这篇文章的时候,发现文章的末尾作者已经附上了一个中文翻译的链接, 直接引用于此.Erlang调度器详解Erlang之所以是软实时系统,是因为有一些重要的隐含特征。其中之一是我在我的上一篇文章,Erlang Garbage Collection Details and Why It Matters中

2016-12-27 22:15:29 1590

翻译 Erlang垃圾回收机制详解(译)

Erlang垃圾回收机制详解Erlang尝试去解决的一个主要问题是创建一个高响应的软实时系统,这样的系统需要一个快速的垃圾回收机制支持,当启动垃圾回收的时候不会造成系统响应时间的延迟. 另一方面, 考虑到Erlang作为一个Immutable语言,没有destructive操作,有比较高的垃圾生产率, 所以好的垃圾回收机制就显得尤为重要.Memory Layout 内存分布在我们深入垃

2016-12-27 18:06:41 2068

翻译 Riak Erlang虚拟机调优(译)

Erlang 虚拟机调优目录SMPSchedulersPort SettingsAsynchronous Thread PoolKernel PollingWarning MessagesProcess LimitDistribution BufferErlang Built-in StorageCrash DumpsNet Kernel Tick TimeShutdown T

2016-12-23 21:53:28 1352

原创 Erlang 热补丁原理及升级方案.

11> c(test_hot_swap).{ok,test_hot_swap}12> 12> Pid = spawn(test_hot_swap, loop, []).13> Pid ! hello.                         This is a old version hello14> 14> Pid ! upgrade.upgrad

2016-12-14 17:42:57 1174

原创 Erlang tail recursion和body recursion 在OTP19.1版本上执行时间差异

我们都知道tail recursion 的好处之一是不用一直占着堆栈,递归到下一次时,上一次的堆栈就会被释放,除了这个之后执行时间上是不是也有差别呢,我们来写个例子测试一下.测试代码如下-module(test_tail).-compile(export_all).tail_fac(N) -> tail_fac(N,1). tail_fac(0,Acc) -

2016-12-14 06:26:22 334

原创 Erlang 测量进程执行时间和reduction

Erlang的进程调度不是使用时间片的分配, 而是给每个进程或Port分配一个reduction budget, 默认值是2000. 每个操作都会花费reduction, 一旦reduction budget用完,该进程就会释放CPU,然后被重新调度,再次分配到CPU的时候又分配了2000 reduction budget,  循环往复.#问题一, 如何测量一个进程消费了多少reduc

2016-12-14 03:50:31 2696

原创 Erlang 打开和关闭SMP选项之差异观察

##以下观察是基于版本otp_19.1#打开SMP选项,Erlang进程会启动两倍于关闭SMP选项的进程, 打开SMP是22个线程,关闭SMP是11个进程.1. 启动erl with SMP enabled (erl -smp enable)2. 找到进程beam.smp的进程ID3. 查看改进程包括的所有线程484: ~/erlang/test  >

2016-12-13 22:16:17 6764 1

转载 有效理解Linux同步异步阻塞非阻塞的两篇文章(转)

转载文章之一》同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上

2016-12-13 06:06:46 361

转载 The C++ Style Sweet Spot, a Conversation with Bjarne Stroustrup(转)

The C++ Style Sweet SpotA Conversation with Bjarne Stroustrup, Part Iby Bill VennersOctober 13, 2003Page 1 of 4  >>SummaryBjarne Stroustrup talks with Bill Venners ab

2016-12-09 20:31:41 244

原创 在ubuntu上安装,使用MQTT Mosquitto

在ubuntu上安装,使用MQTT Mosquitto以下描述了如何安装Mosquitto 并使用MQTT进行通信1. 引入mosquitto仓库并更新$sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa$sudo apt-get update2. 执行以下命令安装mosquitto包$

2016-12-07 20:17:42 17521 3

转载 The 7 stages of refactoring(转)

The 7 stages of refactoringYou have wanted to fix that module for ages. Just one look at it and you cringe. The documentation, the weird naming of functions, classes that are just plain weir

2016-12-06 06:22:28 224

转载 分布式系统的事务处理(转)

#转自coolshell当我们在生产线上用一台服务器来提供数据服务的时候,我会遇到如下的两个问题:1)一台服务器的性能不足以提供足够的能力服务于所有的网络请求。2)我们总是害怕我们的这台服务器停机,造成服务不可用或是数据丢失。于是我们不得不对我们的服务器进行扩展,加入更多的机器来分担性能上的问题,以及来解决单点故障问题。 通常,我们会通过两种手段来扩展我们的数据服务

2016-12-06 06:08:04 187

转载 学习ubuntu远程桌面(二):远程桌面会话管理(转)

在上一篇文章中,我们讲解了如何给ubuntu安装远程桌面及其配置,这篇文章我们再来讲解下有关ubuntu远程桌面会话的问题。一、问题描述在我们使用ubuntu远程桌面时,会经常遇到这样的问题。在连接远程桌面时,我打开的是会话A,我在会话A下处理一些工作的事情。由于自己不小心把这个远程桌面给关闭了,或者今天工作完毕关闭该远程桌面会话。等再进行连接远程桌面时,发现ubuntu会给出一个新的远程

2016-12-06 02:47:28 831

转载 学习ubuntu远程桌面(一):配置远程桌面(转)

公司服务器目前安装的都是ubuntu 14.04系统,而且由于业务需要,需要使用到ubuntu的远程桌面功能。所以本篇文章都是围绕ubuntu的远程桌面来介绍。一、远程桌面连接方式ubuntu的远程桌面连接要说简单也很简单,要说复杂也很复杂。ubuntu远程桌面连接的方式,目前主要有两种方式:基于VNC方式的和基于XRDP方式的。基于VNC方式的远程桌面连接,不在本篇文章中进行介绍。本

2016-12-06 02:41:37 7835

原创 UTF-8 可变编码格式

UTF-8 是一种可变编码格式,长度从一个字节到四个字节,可根据UTF-8字符的第一个字节来识别一个UTF-8字符的长度(具体见下面描述).因为网络中大部分的字符是ASCII码字符,UTF-8可以用一个字节表示ASCII字符,相较于UTF-16和UTF-32的两个字节或者四个字节,大幅节省了空间和传输带宽.几个UTF-8的编码例子》(用该网页工具转换 https://sites.g

2016-12-05 17:51:20 2158 1

原创 symbols are defined in a linker script file(etext, edata, end)

##以下是man page 里面的内容,源码里面使用的三个外部变量(  extern char etext, edata, end)并未定义在任何头文件里面,而是定义在了linker script file中,具体解释见最后 ##  解释NAME       etext, edata, end - end of program segmentsSYNOPSIS

2016-12-01 06:42:07 1064

原创 GCC 符号表小结

1) 如何生成不含符号表的目标文件 ?#一个方式是编译的时候使用 选项 sroot@root2768:~/test_c>gcc -s test1.croot@root2768:~/test_c> objdump -t a.out   a.out:     file format elf64-x86-64SYMBOL TABLE:no symbols# 另

2016-12-01 05:17:40 7223

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除