`
fishermen
  • 浏览: 380052 次
社区版块
存档分类
最新评论
文章列表
1. Webbench    Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz210552/webbench.html   2.CMockery cmockery是google发布的用于C单元测试的一个轻量级的框架。它很小巧,对其他开源包没有依赖,对被测试代码侵入性小。cmockery的源代码行数不到 ...

NOSQL 压测工具

1 memtier_benchmark        memtier_benchmark 是一个命令行工具,用于NoSQL kv存储的压测,由Redis Labs开发。改工具支持redis、mc协议(mc支持text、binary),支持多线程,压测过程支持写速率设置,支持对key的随机、顺序执行,支持随机或区间内的过期时间设置。 https://github.com/RedisLabs/memtier_benchmark
        线上计数系统遇到一个奇怪的问题,进程在做备份时,系统内存迅速变小,25G内存被吃掉,最后进程大量占用swap,导致服务响应缓慢,SLA下降严重。         最后发现跟Transparent hugepage相关,具体记录如下。   1 计数系统备份说明         cache系统占用内存在10-100G级别,备份是在每日凌晨低峰时间进行,备份逻辑:主进程 fork,然后子进程执行落地任务,父进程继续响应请求,备份期间,系统变更量很少,单个kv的byte在64btes以内,变更的tps在100以下。   2 os版本与thp         线上Linu ...
通过vmware升级开发os到centos7,发现很多地方有差异;记录一下开发环境设置的一些差异。 1 启动级别 centos7的启动级别设置已经从/etc/inittab 改到systemd 比如默认运行级别改为字符终端: ln -sf /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target   2 vi显示窗口大小 开发中发现vi一屏显示的行数太小(记得是45行?),不管实际窗口有多大,直观上应该是分辨率太小的缘故,centos 7默认情况下貌似800*600,根据需要改道1280*96 ...
通过/etc/sysctl.conf控制和配置Linux内核及网络设置。 #忽略icmp ping广播包,应开启,避免放大攻击 net.ipv4.icmp_echo_ignore_broadcasts = 1 # 开启恶意icmp错误消息保护 net.ipv4.icmp_ignore_bogus_error_responses = 1 # 开启SYN洪水攻击保护,表 ...
一 准备知识点 1.1 mss     max segment size,就是tcp报文段中data字段(非head)的最大长度,是tcp选项中最早的选项。MSS在tcp三次握手中协商确定,由src-host、router、dst-host三类角色最终商讨确认。mss对保证传输质量非常重要,因为tcp传输过程中,tcp-head、ip-head的尺寸一定,实际传输的data越小,一定size的数据需要传输的次数越多,同时传输效率=SUM(data)/SUM(segment) 越小。       mss的合理值 = 保证数据包不分片的最大值。对于ethnet,一般为1460。     ...

IP地址分类

注:整理本地资料,有点杂,所以逐步把比较老的资料搬过来,然后本地删除鸟~~   1缘由 IP地址构建及分类的原因:为了便于寻址和层次化地构造网络; IP地址分为A-E 共5类,商业只用到A B C三类;   2 具体分类 Ipv4由32bit整数构成,每8位构成一个整数,这样分4段,根据ip地址的第一组数字来进行分类: A类地址: 0-126,网络地址由前8bit表示,网络标志的第一位必须为0,因此有126个网段,每个网段允许1677w左右的主机;通常分配给拥有大量主机的网络,如主干网; B类地址: 128-191,网络标志由前
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 interface "docker0"  解决方案: 问题的原因是docker弱智地为docker0接口选择了一个172.17.XX.XX的IP,而恰好ECS占用了172. ...

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给了个html,然后名字还是jdk-7u79-linux-x64.tar.gz。原来oracle的jdk下载页面在你同意时,会设置一个cookie,如果在服务器上直接wget,那就没有这个cookie,然 ...
1 打包时忽略各种tests mvn package -DskipTests    2 展现项目的依赖树 mvn dependecny:tree   3 本地依赖库install mvn install:install-file -DgroupId=xx  -DartifactId=captain-common -Dversion=0.1-SNAPSHOT -Dpackaging=jar -Dfile=target/xxx.jar 
1 mcrouter https://code.facebook.com/posts/296442737213493/introducing-mcrouter-a-memcached-protocol-router-for-scaling-memcached-deployments/ mcrouter 在去年每秒处理50亿条请求。类似twemproxy,但feature更多
素材汇集: 1 redis with ssd? antirez 之前做过使用ssd作为swap来进行压测分析,结果发现在内存足够的情况下,通过pipeline,tps可以达到60k TPS;而内存不够,开始使用swap后,极端情况下tps只有1k左右,分析可能跟main hash table(dict)进swap有关,一般在数据多于内存10%以上时,TPS降为2w左右,很多请求响应很慢,服务不稳定,TPS漂移的很厉害,从2w-20w都有可能。 http://antirez.com/news/52   2 rdb存储uint(长度)编码方式 由于预期大部分int(集合list、di ...

nginx 源码分析

      近期准备研究一下nginx源码,此处记录一下。 计划: 1 了解evan miller 的文章 http://www.evanmiller.org/nginx-modules-guide.html 2 了解nginx的组织架构; 3 了解nginx的基本数据结构; 4 熟悉nginx的主要module及运行机制,主要是core、http、event、os; 5 简单的module开发及测试;   一 准备         下载源码,linux下安装三板斧搞定:configure、make、make install。       为了方便debug,confi ...

redis 源码分析

        近期准备梳理一下redis代码,此处记录一下。
      平时开发中需要连接到虚拟机linux(centos)进行,期间有些常见问题,在此记录备忘:    1 ssh连接突然变慢,在centos中ping一些常见网址也特别慢       分析:估计dns解析有问题,查看vm中的/etc/resolv.conf 与本机dns差异,发现第一个备用dns不同。ping 第一个nameserver,发现超时,问题找到:应该是nameserver发生变化了,vm中的resolv.conf没有同步。       解决:去掉vm中的第一个nameserver,改用本机的nameserver。一切恢复正常!    2 系统时间不准确   ...
Global site tag (gtag.js) - Google Analytics