擅长面向对象设计、C++程序开发,在金山和华为呆过,互联网从业十多年,有分布式计算和存储系统经验。
这种小辣椒本身是很辣的,所以做的时候不要切碎了,可剖成两半,因为个头大,熟后易分离,但辣味却融入了,而且只会微辣。如果放点蒜和生姜等拌料(悲催的是在买单时忘记打价了),味道会更好。成本大概在10块左右,两个鸡蛋,加大概3两的肉。
图片来自微博
图片来自微博
供买箱时参考:
135胶片的尺寸36×24mm称为全画幅 APS胶卷有三种尺寸,H、C、P APS-H型是接近满画幅(30.3*16.6mm),长宽比为16:9 APS-C型是在上下左右各挡去一端,是长宽比为3:2,约(24.
下面是头文件内容,代码是mooon的一部分,对应的CPP文件请直接浏览:http://code.google.com/p/mooon/source/browse/trunk/common_library/src/sys/info.
ctemplate是Google开源的一个C++版本html模板替换库。有了它,在C++代码中操作html模板是一件非常简单和高效的事。通过本文,即可掌握对它的简单使用。 示例html模板文件example.
process_stopper.zip #!/bin/sh # http://code.google.com/p/mooon # 通用的停止指定名的进程 # 特色: # 1.
process_monitor.zip #!/bin/sh # http://code.google.com/p/mooon # 进程监控脚本,当指定进程不存在时,执行重启脚本将它拉起 # 特色: # 1.
process_monitor.zip #!/bin/sh # https://github.com/eyjian/mooon/blob/master/common_library/shell/process_monitor.sh # # 运行日志:/tmp/process_monitor.log,由于多进程同时写,不一定完整,仅供参考。
创建有主键的表: create table test (pkey varchar(16) primary key, value varchar(10)); 创建有复合(即key由多个字段联合组成)主键的表: create table test (pkey1 varchar(16) ...
创建有主键的表: create table test (pkey varchar(16) primary key, value varchar(10)); 创建有复合(即key由多个字段联合组成)主键的表: create...
MOOON主要消息结构如下,缺点是消息本身占用字节数较多: 点击(此处)折叠或打开 /*** * 分布式消息头结构 */ typedef struct TDistributedMessage { net::common_me...
MOOON-agent系统设计与使用说明.pdf 新增IHeartbeatHook接口的目的是让应用可以在心跳包中安插自己的数据,比如将自己的状态数据通过心跳带回去。
下面这个错误通常是因为链接选项里漏了-lrt,但有时发现即使加了-lrt仍出现这个问题,使用nm命令一直,会发现-lrt最终指向的文件没有包含任何symbol,这个时候,可以找相应的静态库版本librt.a,看看它里面是否存在`clock_gettime'。
原文: http://roqi410.blog.51cto.com/2186161/671708 Linux在进行系统调优的时候,首先要考虑整个操作系统的结构,然后针对各个部分进行优化,下面展示一个Linux系统的各个组成部分: 有上图可以看出,我们可以调整的有应用程序,库文件,内核,驱动,还有硬件本身,所以接下来讲对这些进行详细的介绍,从而是系统的性能有所提高。
全文下载: Linux内核list&hlist解读.pdf 目录 1. 前言 2 2. 通用宏 2 2.1. typeof 2 2.
下面这段,初看一定会脑大,实际原因非常明确,所以遇到时要先观察,不一定是头大的问题。gdb -p 1461GNU gdb 6.
使用ANTLR写了个SQL解析器,这样ORM的基本功能就比较完整了。几天的时间比较仓促,所以对于最终目标,还只能算是个雏形。
my-large.ini 是针对 系统内存大于512M的数据库服务器;my-medium.ini 系统内存128M mysql内存在32-64左右的my-small.
懂得网络配置命令是一般技术人员必备的技术,经过一段时间的研究和学习,总结了一些常用的命令和示例以便日后查阅. 传统的在1--3点,ip高级路由命令在4--12点,两者部分可以通用,并达到同样的目的,但ip的功能更强大,可以实现更多的配置目的。
备份 mysqldump --opt dbname > dbname.20060307 恢复 mysql dbname < backup.20060307 得到表格的创建 SQL 语句 SHOW CREATE TABLE tbl_name 删除行尾的 "\r" MySQL 导入的数据必须是 unix 的文件。
文件: Unix&Linux下常见的性能分析工具介绍.rar 大小: 254KB 下载: 下载 Vmstat Top Free Uptime sysstat工具包 Iozone Strace 工具介绍-Vmstat Vmstat是一个很全面的性能分析工具,可以观察到系统的进程状态、内存使用、虚拟内存使用、磁盘的IO、中断、上下文切换、CPU使用等。
x=MM sed 's/AB/'$x'/g' filename 或 sed 's/AB/'"$x"'/g' filename sed 's/'"$val"'//' filename awk '{ print "'$x'...
一、前言 二、编译安装 三、 安装MySQL、memcache 四、 安装Apache、PHP、eAccelerator、php-memcache 五、 安装Squid 六、后记 一、前言,准备工作 当前,LAMP开发模式是WEB开发的首选,如何搭建一个高效、可靠、稳定的WEB服务器一直是个热门主题,本文就是这个主题的一次尝试。
本文讨论了 UNIX/LINUX 平台下三种主要的可执行文件格式:a.out(assembler and link editor output 汇编器和链接编辑器的输出)、COFF(Common Object File Format 通用对象文件格式)、ELF(Executable and Linking Format 可执行和链接格式)。
文件: 内存屏障机制及内核相关源代码分析.pdf 大小: 70KB 下载: 下载 本来不打算立刻写关于这次 软件开发大会 的事情。
------------------------------------------------------------------------------ T H E /p...
本文系转载,原文URL为:http://www.igigo.net/archives/169 如今Debian和Ubuntu中,/bin/sh默认已经指向dash,这是一个不同于bash的shell,它主要是为了执行脚本而出现,而不是交互,它速度更快,但功能相比bash要少很多,语法严格遵守POSIX标准,下面简要列举下从bash迁移到dash一般需要注意的问题 1.
log_rotater.zip #!/bin/sh # https://github.com/eyjian/mooon/blob/master/mooon/shell/log_rotater.
开发理念:要有追求美的意识,简就是美。要形成自己的思想,设计需要灵魂。模式模式有时是恶魔,它容易让你走上抄袭模仿之路。把职责单一作为第一原则,并努力遵守,将让你柳暗花明又一村。一切源于生活,多和生活类比,能让理解更为深刻透彻。
在原有的基础上增加了module_name,表示模块名,当一个系统由多模块组成时,输出的日志将更加清晰,使用方法,以MOOON-agent中的为例: 点击(此处)折叠或打开 #define AGENT_MODULE_NAME "AGENT" #define AGENT_L...
/** * 单个头文件,可即时独立使用,只要定义了宏NOT_WITH_MOOON,即不依赖于mooon * 简单的写日志类,非线程安全,提供按大小滚动功能 * 不追求功能,也不追求性能,只求简单,若要功能强、性...
主备切换是很多高可用性系统都必须解决的问题,方法有很多,象基于ZooKeeper的主备切换就是一个很好的选择。 在这里提供一种更简单但不完美的主备切换方法: 1) 假设A和B是集群中的主控(Master)节点 2) 1~7是工作节点(如HDFS中的DataNode) 3) 在每个工作节点上,都同时配置了A和B的IP,而且是对等的,无主备之分 所谓主:是指提供服务的主控,而备是指不提供服务的主控,当主故障时,由备接管其它服务,但因网络原因,可能主和备都未故障,这个是解决主备切换的关键问题所在。
一个良好的多线程库,不应当一刀切的全加锁。因为有些时候,虽然是多线程环境,但可能依照设计一个类只会被一个线程操作,这个时候加锁是多余的,纯浪费性能,但另一些场景又需要它是线程安全的。 假设有一个类X: class X { public: void xoo(); }; 这里总结几个常见的做法: 1.
最近新接手一项目,乱,只有眼睁睁了,只能尽量做到新增的保持有序,但无法扭转大局。暂还能将就着用,也只能如此,但如果持续有新的需求,那终将有推倒重开发的一天,因为没办法在它的基础上做质的开发,分析一个重要原因是开发过程中,没有迭代重构,导致恶疾越积越多,加上开发人员缺乏主动服务项目的意识和责任心,一些新加入的又随波逐流或缺乏经验,以至于病入膏肓。
ifup - start a preconfigured net interface. ifdown - stop a (preconfigured) net interface. ifstatus - show the state of a (preconfigured) net interface.
内网软件指的是只为一个企业内部提供服务的软件,它和外网软件有个很大不同 —— 即节点数是相对稳定的而且是非常有限的,在设计时可以充分利用这一特点进行简化。比如设计一款在各IDC间传输数据(文件或消息)的软件时,完全可以建立一对一的连接(为支持重连,可以为会话Session),这不管是对有时序要求,还是无时序要求的传输,都将得到大幅度简化。
作者:Steve Baker (ice@mama.indstate.edu) tree-1.5.1.rar tree-1.5.1.zip 解压后,执行make即可编译成功,并生成可执行文件tree。
我相信大家在工作时,都厌烦手上同时有多个项目,特别是运维多个项目,那么我们在做软件设计时,也应当如此,我们不能给一个对象赋予太多责任,并尽量将主要的剥离出来单独实现(比如mooon中将异步收发数据的状态机剥离出来成了单独可复用的类CRecvMachine和CSendMachine),否则我们成了只抱怨,却对自己无要求的人,因此我们应当从自我做起,然后再去要求别人。
Select函数使用简单,其工作原理大家通常也知道,但是在实际的使用过程中可能并没有严格遵守,而且确实也比较难以完全遵守,除非不使用它。 Select采用一个bit表,每个fd对应表中的一个bit位,宏FD_SETSIZE为表的大小,添加到fd_set中的fd值必须小于FD_SET...
初稿设计:http://blog.chinaunix.net/uid-20682147-id-3252602.html 在上一版本的基础上,进行了细化和关系调整,并考虑了Service在线升级,升级过程中,会同时存在两个不同版本的Service,这可以从CServiceTable和CkernelService间的关系看出来,升级过程中不会有任何消息的丢失,完全无缝升级,得益于双版本同时在线服务设计,当老版本Service处于停止服务状态过程中时,会将消息转交给新版本Service处理,但如仍需要老版本才能处理的消息,则它会继续处理。
有时候我们在做维护的时候,总会遇到类似于IO特别高,但不能判定是IO瓶颈还是软件参数设置不当导致热盘的问题.这时候通常希望能知道磁盘的读写速度,来进行下一步的决策. 下面是两种测试方法:(1)使用hdparm命令这是一个是用来获取ATA/IDE硬盘的参数的命令,是由...
仅一行脚本,复制粘贴即可使用。 按进程名:while true; do ps h -o pcpu,vsize,rss -C 进程名; sleep 2; done 按进程ID: while true; do ps h -o pcpu,vsize,rss -p 进程ID; sleep 2; done 可以根据需要扩充内容,在rss后追加即可。
#!/bin/sh # 下面两个参数可根据需要修改 EthXname=eth0 # 网卡名称 StatFreq=2 # 统计间隔时长,单位为:秒,建议为2或2的倍数 # 下面的参数,请不要修改 influx_kbps=0 outflux_kbps=0 influx_mbps=...
Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系 统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变 内核的运行状态。
突然想对linux的网卡流量进行监控,又不想使用cacti,觉得配置snmp很麻烦。现成的工具好像也没啥太好用的。决定自己写一个脚本。 点击(此处)折叠或打开 #!/bin/bash rx1=$(ifconfig $1|grep "RX bytes"|awk '{print $2...
原文:http://blog.csdn.net/guomsh/article/details/6536915 Linux有一个特性:OOM Killer,一个保护机制,用于避免在内存不足的时候不至于出现严重问题,把一些无关的进程优先杀掉,即在内存严重不足时,系统为了继续运转,内核会挑选一个进程,将其杀掉,以释放内存,缓解内存不足情况,不过这种保护是有限的,不能完全的保护进程的运行。
对于进程模式,有两种可选的消息发出方案:1.每个Service进程都独立加载一份dispatcher 2.所有Service进程不加载dispachter,只内核加载一份dispatcher,消息发出时,总是需要通过内核 方案一优点: 1.
按以下思路进行设计,非最终设计图,有等进一步思考,以发现问题,需要达到以下目的: 同时支持线程和进程模式(做了抽象) Service不和线程绑定 Service独占线程池或进程(进程下再划分线程池) Session和线程绑定,不跨线程 Service下可以有0到多个Session...