- 浏览: 380052 次
最新评论
-
fishermen:
使用 <%@ page session="fa ...
Tomcat 的session管理 -
xinyiwust:
楼主你好!你总结的第一点:对于stateless的data s ...
Tomcat 的session管理 -
hujintao:
好像换成JDK目录后还是不行,比如HashMap这些类都不可以 ...
eclipse 调试 跟进 jdk -
顾小五:
是不是一般重写的方法,都有子类继承父类,就是 A extend ...
JAVA方法重载和方法重写 -
jhq986:
好用一定好评
lomboz插件下载
文章列表
1. Webbench
Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz210552/webbench.html
2.CMockery
cmockery是google发布的用于C单元测试的一个轻量级的框架。它很小巧,对其他开源包没有依赖,对被测试代码侵入性小。cmockery的源代码行数不到 ...
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。
...
注:整理本地资料,有点杂,所以逐步把比较老的资料搬过来,然后本地删除鸟~~
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,网络标志由前
docker 札记
- 博客分类:
- 系统架构
- open source
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
- 博客分类:
- Linux
按照之前的做法,直接通过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,然 ...
maven 常用命令备忘
- 博客分类:
- 工作管理
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
fb的开源分析
- 博客分类:
- C/C++
- open source
- Linux
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源码,此处记录一下。
计划:
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 ...
linux 常见问题及解决
- 博客分类:
- Linux
平时开发中需要连接到虚拟机linux(centos)进行,期间有些常见问题,在此记录备忘:
1 ssh连接突然变慢,在centos中ping一些常见网址也特别慢
分析:估计dns解析有问题,查看vm中的/etc/resolv.conf 与本机dns差异,发现第一个备用dns不同。ping 第一个nameserver,发现超时,问题找到:应该是nameserver发生变化了,vm中的resolv.conf没有同步。
解决:去掉vm中的第一个nameserver,改用本机的nameserver。一切恢复正常!
2 系统时间不准确
...