自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(113)
  • 收藏
  • 关注

原创 十个最值得阅读的C开源项目(转)

1. Webbench   Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz210552/webbenc...

2016-08-02 18:25:54 216

NOSQL 压测工具

1 memtier_benchmark       memtier_benchmark 是一个命令行工具,用于NoSQL kv存储的压测,由Redis Labs开发。改工具支持redis、mc协议(mc支持text、binary),支持多线程,压测过程支持写速率设置,支持对key的随机、顺序执行,支持随机或区间内的过期时间设置。https://github.com/RedisLabs/m...

2016-04-11 11:35:04 501

当Transparent hugepage 遇到fork

        线上计数系统遇到一个奇怪的问题,进程在做备份时,系统内存迅速变小,25G内存被吃掉,最后进程大量占用swap,导致服务响应缓慢,SLA下降严重。        最后发现跟Transparent hugepage相关,具体记录如下。 1 计数系统备份说明        cache系统占用内存在10-100G级别,备份是在每日凌晨低峰时间进行,备份逻辑:主进程 fo...

2016-04-06 18:31:37 298

centos 7 升级使用札记

通过vmware升级开发os到centos7,发现很多地方有差异;记录一下开发环境设置的一些差异。1 启动级别centos7的启动级别设置已经从/etc/inittab 改到systemd比如默认运行级别改为字符终端:ln -sf /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target ...

2016-03-01 18:04:20 124

sysctl对Linux内核/网络的设置说明

通过/etc/sysctl.conf控制和配置Linux内核及网络设置。#忽略icmp ping广播包,应开启,避免放大攻击net.ipv4.icmp_echo_ignore_broadcasts = 1# 开启恶意icmp错误消息保护net.ipv4.icmp_ignore_bogus_error_responses = 1# 开启SYN洪水攻击保护,表示开启...

2016-01-11 17:01:01 250

关于nagle及tcp_nodelay的一些小结

一 准备知识点1.1 mss    max segment size,就是tcp报文段中data字段(非head)的最大长度,是tcp选项中最早的选项。MSS在tcp三次握手中协商确定,由src-host、router、dst-host三类角色最终商讨确认。mss对保证传输质量非常重要,因为tcp传输过程中,tcp-head、ip-head的尺寸一定,实际传输的data越小,一定siz...

2015-12-22 17:37:16 262

IP地址分类

注:整理本地资料,有点杂,所以逐步把比较老的资料搬过来,然后本地删除鸟~~ 1缘由IP地址构建及分类的原因:为了便于寻址和层次化地构造网络;IP地址分为A-E 共5类,商业只用到A B C三类; 2 具体分类Ipv4由32bit整数构成,每8位构成一个整数,这样分4段,根据ip地址的第一组数字来进行分类:A类地址:0-126,网络地址由前8bit表示,网络标...

2015-12-22 17:35:26 108

docker 札记

1 阿里云上docker安装后,启动报错: $ docker -d...FATA[0000] Error starting daemon: Error initializing network controller: Error creating default "bridge" network: can't find an address range for interfac...

2015-08-20 17:36:19 94

wget 下载jdk

    按照之前的做法,直接通过wget 下载jdk:wget http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz,然后瞬间下完(都怀疑自己的眼睛了)。然后tar解压,报错:“gzip: stdin: not in gzip format”。    尝试vi打开文件,擦!oracle给...

2015-08-14 15:39:00 120

maven 常用命令备忘

1 打包时忽略各种testsmvn package -DskipTests  2 展现项目的依赖树mvn dependecny:tree 3 本地依赖库installmvn install:install-file -DgroupId=xx  -DartifactId=captain-common -Dversion=0.1-SNAPSHOT -Dpackaging...

2015-07-28 10:38:15 100

fb的开源分析

1 mcrouterhttps://code.facebook.com/posts/296442737213493/introducing-mcrouter-a-memcached-protocol-router-for-scaling-memcached-deployments/mcrouter 在去年每秒处理50亿条请求。类似twemproxy,但feature更多...

2014-09-22 16:32:01 214

redis 的那些事

素材汇集:1 redis with ssd?antirez 之前做过使用ssd作为swap来进行压测分析,结果发现在内存足够的情况下,通过pipeline,tps可以达到60k TPS;而内存不够,开始使用swap后,极端情况下tps只有1k左右,分析可能跟main hash table(dict)进swap有关,一般在数据多于内存10%以上时,TPS降为2w左右,很多请求响应很慢,服...

2014-09-22 15:23:36 77

nginx 源码分析

      近期准备研究一下nginx源码,此处记录一下。计划:1 了解evan miller 的文章 http://www.evanmiller.org/nginx-modules-guide.html2 了解nginx的组织架构;3 了解nginx的基本数据结构;4 熟悉nginx的主要module及运行机制,主要是core、http、event、os;5 简单的m...

2014-06-27 15:42:37 165

redis 源码分析

        近期准备梳理一下redis代码,此处记录一下。

2014-06-27 15:41:30 92

linux 常见问题及解决

      平时开发中需要连接到虚拟机linux(centos)进行,期间有些常见问题,在此记录备忘:  1 ssh连接突然变慢,在centos中ping一些常见网址也特别慢      分析:估计dns解析有问题,查看vm中的/etc/resolv.conf 与本机dns差异,发现第一个备用dns不同。ping 第一个nameserver,发现超时,问题找到:应该是nameserv...

2014-02-10 11:12:39 73

对Linux 网卡软中断做负载均衡

        测试中发现服务器整体负载较低,但有cpu负载特别高,其中一个cpu几乎一半是软中断si,特别忙,而还有的cpu特别空闲。top - 16:12:08 up 31 days, 3:52, 1 user, load average: 0.11, 0.11, 0.06Tasks: 242 total, 4 running, 238 sleeping, 0 sto...

2013-12-26 16:25:54 474

twemproxy中经典 bug分析

      在nc_message.c中定义了局部变量sendv,且定义为栈上空间,在后续调用中array_push(&sendv),如果array的size达到预定义的值,在array_push会对send->elem进行realloc。      问题就出现了,sendv是栈上变量,不允许对其进行realloc(只有堆变量才可以)。知道原因了,修复方案很简单,send改为m...

2013-12-03 18:22:13 108

vim插件YouCompleteMe

vim开发中代码补全插件太弱(OmniCppComplete等),当看到YouCompleteMe的介绍,被其强大折服,决定改用YouCompleteMe。 一 安装       1 安装python(7.5)./configure --prefix=/usr/local --enable-share CFLAGS=-fPICmake sudo make insta...

2013-10-20 07:34:52 254

ssh连入远程centos环境下IDE开发

         先在在测试机centos下装eclipse,然后ssh连入开发,步骤如下:         1 eclipse官网下载c/c++开发版本 http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/keplerr (不要用yum安装,版本太低)         2 下载CDT:Help--&g...

2013-08-20 11:57:45 203

原创 C 开发札记

    记录C开发中一些小知识,备忘~~    1 man 手册1 Executable programs or shell commands2 System calls (functions provided by the kernel)3 Library calls (functions within program libraries)4 Special files ...

2013-08-15 14:12:13 110

vi 开发快捷键备忘

一 复制    1 复制单行:移动光标到需要复制的行,输入yy,再移动到目标位置,输入p。    2 复制多行:yy改用nyy,比如复制5行用5yy    3 移动:光标移到起始位置,输入ma,光标移到结束位,输入mb,然后移到要输入的位置,输入mc,然后 :'a,'b m 'c,如果要复制,把m改为co    4 跨文件复制,在第一个文件要复制的地方输入 "a2yy  (假设...

2013-08-14 16:03:50 80

使用tc模拟网络慢或异常

        上线前,需要模拟一下网络异常的情况:慢、丢包等,这时候tc可以发挥作用。        1 模拟延迟         tc qdisc add dev eth0 root netem delay 100ms  #延迟100ms         tc qdisc add dev eth0 root netem delay 300ms 200ms   #延迟200-30...

2013-07-23 17:04:18 568

扩展列表

1 resources的获取方法 String resource = "";filters.getClass().getResource(resource);Thread.currentThread().getContextClassLoader().getResource(resource);filters.getClass().getClassLoader().getRe...

2013-05-30 16:15:28 339

mysql 使用中的坑

        记录mysql使用中遇到的坑,备查。 1 字符集选择        坑:一般人会直接选择utf8,但utf8字符集最多用3个bytes来描述一个字符,只包含BMP(Basic Multilingual Plane)字符,这样导致一些生僻字、无线互联网中的emoji表情符号等无法插入。         方案:mysql升级到5.5.3以上,改用utf8mb4字...

2013-05-10 18:42:15 98

tomcat 日志及参数的乱码问题

假设编码用utf-8, 1 tomcat日志乱码 解决:在catalina.sh增加 JAVA_OPTS="-Dfile.encoding=utf-8" 注:这个参数必须在jvm启动时加上,在程序中通过设置system property的方式是没有效果的,原因是jvm启动时读取file.encoding并cache,后续只使用启动时读取的编码。 2 tomcat参数的乱码...

2013-01-08 17:59:07 227

原创 maven 使用小结

1 导入maven工程时遇到:maven-dependency-plugin (goals "copy-dependencies", "unpack") is not support 解决办法,在build中加入pluginManagement,然后Update project configuration即可: .... org.eclipse.m2elifecycle-mapping1.0....

2012-12-04 16:56:11 95

原创 mysql 实战问题处理

记录工作中使用mysql的疑难杂症及解决。 1 pipe broken or connection broken        使用pol的mysql client端的连接莫名断开,一般都是由server端主动断开连接引发,需要查一下连接池中的maxIdle与mysql的wait_timeout,前者一定要小,否则connection会被server主动断开。 2 域名下的s...

2012-11-19 11:03:31 78

zookeeper 的了解与应用

      zookeeper是一个针对分布式应用的高性能协调服务,也是当前最好的此类开源软件。特别擅长与名字服务、配置服务、分布式系统中的同步、group管理等。下面我将自己的初步学习、使用过程记录下来,方便感兴趣的同学了解,也作为自己后续的备查。 一 初步印象       光说不练假把式,先把zookeeper跑起来有点感性认识吧,先从官网地址下载 http://zookeep...

2012-10-21 21:39:10 74

家有小女

      上个月,小鱼儿愉快的跟爸爸妈妈说hello了。带娃近一月了,虽然最近白天上班,晚上还是可以陪着她乐一会,从最初彻夜守护,到现在基本恢复正常作息,养娃虽累,却是一种充实和幸福。      小盆友原来在麻麻肚子里吃了睡,睡了玩,玩饿了继续吃,生出来后,刺眼的灯光、噪音、不规则的冷热。。。,相当于来到一个全新的环境。在这时,她会有相当的不安全感,所以最初消除她的不安全感是最重要的。 ...

2012-10-21 21:03:21 85

个人管理:思维导图与任务管理

      工作压力大,任务繁多,导致每个worker每日劳身劳神。要高效的工作,要能够及时、快速、无压力的处理所有相关工作,需要 1)“记住”所有任务;2)按一定的优先级处理任务;3)能及时根据变化调整工作内容;4)在遗忘时能被提醒。       思维导图作为一种思维模式,能够利用map的方式进行归纳与梳理,应用于记忆、学习、思考,让你记住整个任务框架,了解所有需要处理的任务分类、任务细...

2012-02-01 15:53:01 523

原创 mac 使用点滴

 一 快捷方式 1.1 通用快捷键1 模拟行首、行尾: cmt+左右键2 截屏: cmd+shif+43 强制重启:cmd+ctrl+power,或者长按power4 启动时选择磁盘:长按option  1.2 finder 快捷键 1 查看简介或属性:cmd+i2 查找:cmd+f3 查看磁盘分区使用:cmd+shif+c4 转到h...

2011-12-31 16:24:27 207

原创 linux的文件目录

linux 下目录众多,baidu后汇总如下:1. /bin目录 
/ b i n目录包含了引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。这些 
命令都是二进制文件的可执行程序( b i n是b i n a r y- -二进制的简称),多是系统中重要的系统文件。 
2. /sbin目录 
/ s b i n目录类似/bin ,也用于存储二进制文件。因为其中的大部分文件多...

2011-11-30 17:18:00 80

apache 的ab工具介绍

         程序开发完毕后需要测试,你可以用重量级的LoadRunner,也可以自己写个压力里程序。这里介绍一个apache的测试小工具ab。         安装apache httpserver(httpd)后,在其bin目录下有个很有用的工具ab,可以用于测试http服务的响应速度、吞吐量等。        Eg:...

2010-07-29 11:36:06 140

原创 xml 构造及解析时的非法字符问题

      系统交互会用到xml,如果直接构造xml的字串,很容易出现非法字符,所以一般推荐,使用dom4j 先构造合法的xml obj,然后再转为字串。但实际上,即便如此,如果遇到xml的非法字符,即便构造xml obj成功,最后转的xml 字串也是有问题。       xml的无效字符包含ascii值在32以下的三段:0x00-0x08, 0x0b-0x0c, 0x0e-0x1f。在字...

2010-07-07 14:45:14 435

eclipse 3.4 插件

eclipse3.4安装svn 插件:link文件放在dropins下,删除插件下的site.xml(必须)

2010-03-11 18:31:41 58

原创 于丹.论语---- 总结

习于丹的论语解读,总结要点。 一 天地人之道 1 子贡问政: 国家想安定平稳,需要什么?  足兵,足食,民信之矣。 2 论语核心精髓之一: 恕,即自所不欲勿施于人,拓展一点说,“恕”字是讲你不要强人所难,不要给别人造成伤害。言外之意是假如他人给你造成了伤害,你也应该尽量宽容。 3 仁者不忧:胸怀无限大,很多事情自然就小了 4 论语核心精髓之二 仁:爱人。(智...

2010-01-24 22:05:56 153

原创 海量数据下Mysql 与 Memcached的同步策略

        海量数据,需要分库分表,同时采用master-slave进行读写分离。        memcached作为db的前端,缓存db数据,可以大大减轻db压力。         在大规模应用开发中会从在一个问题,db write的地方在master,而db read的地方需要进行memcached缓存,而修改 master时的app,不care从服务器的应用与操作。。。...

2010-01-22 10:47:48 100

原创 mysql src.rpm 安装问题

        src.rpm需要使用rpmbuild进行编译安装,不过mysql 5.1的src.rpm包:MySQL-community-5.1.42-0.rhel4.src.rpm MySQL-community-5.1.34-0.rhel5.src.rpm等直接使用rpmbuild包安装时,却会报错:error: parse error in expression error: 。。。...

2010-01-08 09:33:02 277

原创 Memcache 协议

闲暇之余,fish翻译了memcached协议,自娱同时也方便后来者参阅。 Protocol--------        Memcached client 采用tcp、udp协议连接memcached ,发送指令,接受解析响应,从而实现对象的写入与读出。       Memcached client无须发送任何治指令即可断开与server的会话。不过推荐缓存在client端缓存连接,而非...

2009-12-24 23:06:21 149

原创 OO原则总结

      开发设计,不分语言、系统类别,面向对象设计的原则是相通的。      基础的OO原则无非有三:      封装变化      多组合少继承       针对接口编程      封装变化:扩展开去,区分系统、子系统、类、方法中易变和不变部分,独立封装,从而从容应对以后的变化,也使系统后续扩展只影响到局部;在系统设计中,把变化与不变的部分独立成类,可以提高类的内聚性...

2009-11-17 22:29:08 109

空空如也

空空如也

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

TA关注的人

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