- 浏览: 100015 次
最新评论
-
ycye:
博主好,我研读了这篇博文,有一块没能理解:在msg的生命周期中 ...
ngx-push-stream模块源码学习(五)——内存清理
文章列表
数据中心要诀:全、稳、准、快 为做到上面四方面,需要如下几方面的辅助工作:
(因时间关心,如下文字部分待续)
一、稳定性-数据监控
源监控
1.游戏内数据post可能丢数据(go开发syslog-ng嵌入程序,数据转发到Beanstalk。队列管理保证数据完整性)
翻译:http://en.wikipedia.org/wiki/Garbage_collection_(computer_science)
之前用c/c++,没有GC的概念,后来用php只知道是采用引用计数的方式进行垃圾回收。
学习go时,很多人说go的GC有问题,为此本篇从概念上一探究竟——GC是干嘛的?
概念
GC(garbage collection)是自动内存管理的意思,自动释放不再被对方占用的内存。
与之相对的是手动垃圾回收——由程序员告诉操作系统哪些内容没有被使用,并交还给操作系统(free,delete)
好处
开发高效
不用担心double free等内存泄 ...
需求
统计某游戏平台新用户渠道来源
日志格式如下:
Jul 23 0:00:47 [info] {SPR}gjzq{SPR}20130723000047{SPR}85493108{SPR}S1{SPR}{SPR}360wan-2j-reg{SPR}58.240.209.78{SPR}
分析
问题的关键在于先找出新用户
新用户:仅在7月份登陆过平台的用户为新用户
依据map/reduce思想,可以按照如下方式找出新用户:
假如某用户在某月份出现过,则(qid,year,month)=1
分析用户玩家流失率
(流失:如果一用户登陆某游戏某区服后接下来一周时间内登陆该区服的天数少于2天,则认为该用户已流失)
日志格式如下:
{"cnt":3,"src":"bbs","time":20130622063117,"qid":"100005648","gkey":"yjjh","skey":"S9"}
{"cnt":2,"src":"n ...
问题排查方式
一般的错误,查看错误输出,按照关键字google
异常错误(如namenode、datanode莫名其妙挂了):查看hadoop($HADOOP_HOME/logs)或hive日志
hadoop错误
1.datanode无法正常启动
添加datanode后,datanode无法正常启动,进程一会莫名其妙挂掉,查看namenode日志显示如下:
2013-06-21 18:53:39,182 FATAL org.apache.hadoop.hdfs.StateChange: BLOCK* NameSystem.getDatanode: Data node x.x.x.x: ...
前期准备
1.安装包下载
1)jdk
http://download.oracle.com/otn/java/jdk/7u21-b11/jdk-7u21-linux-x64.rpm]
2) hadoop
http://apache.mirrors.tds.net/hadoop/common/stable/
2.待部署集群规划
1)职责划分
确定哪台机器为namenode,哪几台机器为SecondaryNameNode,哪几台机 ...
概述
基于boost库编写了一个server,应用方告知该server待抓取的url,server异步抓取完成后回调通知应用方
源码
https://github.com/godlovesdog/boost_spider
因环境依赖的缘故,github上的源码只能算是个demo
一直想提笔写,却看到朗格科技整理的levelDB日知录,感觉自己写的东西难出其右,又没有动力写下去了。直到过了段时间,把基本原理基本全忘了,才决定就算抄一遍也要自己整理下,落实到笔头上。
本文内容只是帮助自己温 ...
1.实现
基于boost svn中bloom filter库编写。为beta版,需要依赖其他项目的日志库等组件,有兴趣的朋友可以私信联系,我来优化
https://github.com/godlovesdog/bloom_filter
2.简介
bloom filter是一种消重过滤器,该过滤器具有如下
优势:
存储空间小:过滤器是一个位矢量,每个数据元素被hash成该矢量中的某几个bit,而非hash成多个字节。
时间复杂度低:O(1),只需进行简单的hash计算
缺点:
有一定的误判率——如果待查询数据在filter中,就一定能被判别出来;但因为hash碰撞,未在filter中的元 ...
问题
imagemagick在某种场景下会狂写/tmp目录,文件名形如magick-xxxxxxxx,
ls -lh查看这些文件达到几百G,
du -sh查看则只有几十M
被这个问题折磨了许久,大晚上收报警、出去玩收报警的感觉你懂的。。。
忍够了!!!
原因
google发现imagemagick的资源管理](Cache Storage and Resource Requirements章节):http://www.imagemagick.org/script/architecture.php
引用
imagemagick内部有个帧缓存(pixel cache),用于提升存储和处理速度,其大小 ...
linux之系统运行时修改内核参数
linux可以在运行时修改内核参数,而不必重启系统,这点是通过/proc虚拟文件系统实现的。
www.2cto.com
/proc/sys存放大多数的内核参数,并且设计成可以在系统运行的同时进行修改。
方法一:修改/proc下内核参数文件
例如:cat /proc/sys/kernel/core_pattern
echo '%e.core.%p' > /proc/sys/kernel/core_pattern
该修改实际上只是修改了内存值,在reboot后,系统会读取/etc/sysctl.conf文件获取内核参数
(注意 ...
编译IM多次,第一次遇到如下问题:
/usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [magick/libMa ...
imagick-3.1安装
- 博客分类:
- Linux安装笔记
用Imagemagick+imagick.so两年了,今天重编竟然遇到如下错误:
在包含自 /home/lvbenwei/source/imagick-3.1.0RC2/imagick_file.c:21 的文件中:
/home/lvbenwei/source/imagick-3.1.0RC2/php_imagick.h:49:31: 错误:wand/MagickWand.h:没有那个文件或目录
In file included from /home/lvbenwei/source/imagick-3.1.0RC2/php_imagick_file.h:24,
...
webp的php扩展编写
- 博客分类:
- webp
生成框架
http://blog.csdn.net/heiyeshuwu/article/details/3453854 文章比较详细,不细说
代码编写
libweb(https://developers.google.com/speed/webp/)中example部分提供了cwebp的源码,只是输入输出为文件句柄,尝试修改输入输出参数为内存即可。
不细说
编译
依赖环境:
libwebp-0.2.0+
libjpeg-8+
libpng
下面说下编译过程中遇到的几个疑问:
1. 如何在编译时引用第三方库及头文件?
答:http: ...