Author: admin

实时系统架构与实践

实时系统架构与实践

概要
分享基于 MQTT 协议的、面向移动互联网的 实时消息、实时统计、实时在线系统的架构设计;团队在云主机、部署自动化、监控自动化实践;团队在高性能分布式 Key/Value 存储的实践。 听众受益: 了解 MQTT 协议在移动互联网、智能设备上使用的优势, 了解大型实时系统的基本架构设计原理, 小团队如何利用云端资源快速实现、运营产品, 自动化 部署、监控 系统及实践方法, 高性能 Key/Value 系统的新设计理念

http://www.infoq.com/cn/presentations/framework-and-implementation-of-real-time-system

            

erlang 虚机CPU 占用高排查

-问题起因

近期线上一组服务中,个别节点服务器CPU使用率很低,只有其他1/4。排除业务不均,曾怀疑是系统top统计错误,从 Erlang调度器的利用率调查  找到通过erlang:statistics(scheduler_wall_time) 查看服务器CPU低的机器调度器实际的CPU利用率很高接近100%,而其他机器都不到30%。

分析不同业务服务,发现只有在node 中进程数采用调度器CPU利用低这个问题。…

            

erlang高并发的优化

Ejabberd官网上Performance Tuning有一写关于优化的clue,这些参数可以在ejabberdctl.cfg里面修改

Erlang Ports Limit: ERL_MAX_PORTS  建议使用,调的大一些
Erlang consumes one port for every connection, either from a client or from another Jabber server. The option ERL_MAX_PORTS limits the number of concurrent connections and can be specified when starting ejabberd:
erl 
        

Linux下高cpu解决方案(转载)

昨天搞定了一个十万火急的issue,客户抱怨产品升级后系统会变慢和CPU使用率相当高,客户脾气很大,声称不尽快解决这个问题就退货,弄得我们 R&D压力很大,解决这个issue的任务分给了我,客户是南非的一个公司,由于时差问题,我只好在家远程解决问题,晚上8点半用 gotomeeting远程到客户电脑查看我们的系统,折腾了四个多小时,终于在凌晨时reproduce了这个high CPU,赶紧抓Log,用wireshark抓包,用gcore,gstack,strace和top保存了系统的相关输出。在第2天分析了这些文件后, 找到了产品的bug,代码的作者分配了10K的缓冲区,并想当然认为10K足以够用,当然99%的情况下是够用的,但是在这1%的情况下出现了问题,缓冲 区不幸被写满了,然后程序进入了死循环,导致high CPU。找到了问题了,fix就很容易了,客户的脾气也缓和了,fix很快就可以deliver给客户。反思解决问题的过程,觉得这个分析过程具有可复用 性,值得总结一下。…

        

PHP Socket 编程示例

<?php

//php socket 客户端编程
// 建立一个socket并连接

//选项 SO_REUSEADDR¦SO_REUSEPORT¦TCP_NODELAY¦SO_RCVTIMEO¦SO_SNDTIMEO
//SO_REUSEPORT 端口重用 linux kernel >3.9
//SO_RCVTIMEO 接收数据超时
//SO_SNDTIMEO发送数据超时
//设置socket选项

//$host = "34.56.33.33";
$host = "192.168.6.156";
$port = "1883";
$timeout = 2; //连接超时/秒

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

//连接 超时处理
socket_set_nonblock($socket);
$time = 
        

解决 Linux error while loading shared libraries: cannot open shared object file: No such file or directory

安装最新版本Emqtt,参照官方文档安装后,执行报错:

Linux error while loading shared libraries libsctp.so.1: cannot open shared object file: No such file or directory

 

从互联网上找到了一些文章, 解决了我的问题,这里整理贴一下,类似的问题应该都可以参照解决。…