- 博客(113)
- 收藏
- 关注
原创 十个最值得阅读的C开源项目(转)
1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz210552/webbenc...
2016-08-02 18:25:54 257
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 523
当Transparent hugepage 遇到fork
线上计数系统遇到一个奇怪的问题,进程在做备份时,系统内存迅速变小,25G内存被吃掉,最后进程大量占用swap,导致服务响应缓慢,SLA下降严重。 最后发现跟Transparent hugepage相关,具体记录如下。 1 计数系统备份说明 cache系统占用内存在10-100G级别,备份是在每日凌晨低峰时间进行,备份逻辑:主进程 fo...
2016-04-06 18:31:37 345
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 142
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 300
关于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 287
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 149
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 124
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 146
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 133
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 252
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 91
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 184
linux 常见问题及解决
平时开发中需要连接到虚拟机linux(centos)进行,期间有些常见问题,在此记录备忘: 1 ssh连接突然变慢,在centos中ping一些常见网址也特别慢 分析:估计dns解析有问题,查看vm中的/etc/resolv.conf 与本机dns差异,发现第一个备用dns不同。ping 第一个nameserver,发现超时,问题找到:应该是nameserv...
2014-02-10 11:12:39 87
对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 495
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 122
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 286
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 237
原创 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 142
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 93
使用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 593
扩展列表
1 resources的获取方法 String resource = "";filters.getClass().getResource(resource);Thread.currentThread().getContextClassLoader().getResource(resource);filters.getClass().getClassLoader().getRe...
2013-05-30 16:15:28 354
mysql 使用中的坑
记录mysql使用中遇到的坑,备查。 1 字符集选择 坑:一般人会直接选择utf8,但utf8字符集最多用3个bytes来描述一个字符,只包含BMP(Basic Multilingual Plane)字符,这样导致一些生僻字、无线互联网中的emoji表情符号等无法插入。 方案:mysql升级到5.5.3以上,改用utf8mb4字...
2013-05-10 18:42:15 115
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 240
原创 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 133
原创 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 93
zookeeper 的了解与应用
zookeeper是一个针对分布式应用的高性能协调服务,也是当前最好的此类开源软件。特别擅长与名字服务、配置服务、分布式系统中的同步、group管理等。下面我将自己的初步学习、使用过程记录下来,方便感兴趣的同学了解,也作为自己后续的备查。 一 初步印象 光说不练假把式,先把zookeeper跑起来有点感性认识吧,先从官网地址下载 http://zookeep...
2012-10-21 21:39:10 91
家有小女
上个月,小鱼儿愉快的跟爸爸妈妈说hello了。带娃近一月了,虽然最近白天上班,晚上还是可以陪着她乐一会,从最初彻夜守护,到现在基本恢复正常作息,养娃虽累,却是一种充实和幸福。 小盆友原来在麻麻肚子里吃了睡,睡了玩,玩饿了继续吃,生出来后,刺眼的灯光、噪音、不规则的冷热。。。,相当于来到一个全新的环境。在这时,她会有相当的不安全感,所以最初消除她的不安全感是最重要的。 ...
2012-10-21 21:03:21 106
个人管理:思维导图与任务管理
工作压力大,任务繁多,导致每个worker每日劳身劳神。要高效的工作,要能够及时、快速、无压力的处理所有相关工作,需要 1)“记住”所有任务;2)按一定的优先级处理任务;3)能及时根据变化调整工作内容;4)在遗忘时能被提醒。 思维导图作为一种思维模式,能够利用map的方式进行归纳与梳理,应用于记忆、学习、思考,让你记住整个任务框架,了解所有需要处理的任务分类、任务细...
2012-02-01 15:53:01 569
原创 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 221
原创 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 90
apache 的ab工具介绍
程序开发完毕后需要测试,你可以用重量级的LoadRunner,也可以自己写个压力里程序。这里介绍一个apache的测试小工具ab。 安装apache httpserver(httpd)后,在其bin目录下有个很有用的工具ab,可以用于测试http服务的响应速度、吞吐量等。 Eg:...
2010-07-29 11:36:06 158
原创 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 474
原创 于丹.论语---- 总结
习于丹的论语解读,总结要点。 一 天地人之道 1 子贡问政: 国家想安定平稳,需要什么? 足兵,足食,民信之矣。 2 论语核心精髓之一: 恕,即自所不欲勿施于人,拓展一点说,“恕”字是讲你不要强人所难,不要给别人造成伤害。言外之意是假如他人给你造成了伤害,你也应该尽量宽容。 3 仁者不忧:胸怀无限大,很多事情自然就小了 4 论语核心精髓之二 仁:爱人。(智...
2010-01-24 22:05:56 167
原创 海量数据下Mysql 与 Memcached的同步策略
海量数据,需要分库分表,同时采用master-slave进行读写分离。 memcached作为db的前端,缓存db数据,可以大大减轻db压力。 在大规模应用开发中会从在一个问题,db write的地方在master,而db read的地方需要进行memcached缓存,而修改 master时的app,不care从服务器的应用与操作。。。...
2010-01-22 10:47:48 112
原创 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 321
原创 Memcache 协议
闲暇之余,fish翻译了memcached协议,自娱同时也方便后来者参阅。 Protocol-------- Memcached client 采用tcp、udp协议连接memcached ,发送指令,接受解析响应,从而实现对象的写入与读出。 Memcached client无须发送任何治指令即可断开与server的会话。不过推荐缓存在client端缓存连接,而非...
2009-12-24 23:06:21 198
原创 OO原则总结
开发设计,不分语言、系统类别,面向对象设计的原则是相通的。 基础的OO原则无非有三: 封装变化 多组合少继承 针对接口编程 封装变化:扩展开去,区分系统、子系统、类、方法中易变和不变部分,独立封装,从而从容应对以后的变化,也使系统后续扩展只影响到局部;在系统设计中,把变化与不变的部分独立成类,可以提高类的内聚性...
2009-11-17 22:29:08 122
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人