摘要: 因为需要,尝试了预研下面常用几个软负载,大概整理了如下:(自己只是在虚机部署,大概跑跑,没做详细性能测试,性能数值为网上看到的文章归纳,仅供参考):1.LVS 性能最强1. LVS :Linux Virtual Server(VS),请求对于RealServer(RS)都是透明的(不修改Src),使... 阅读全文
posted @ 2013-07-21 21:42 LittlePeng 阅读(1690) 评论(0) 推荐(1) 编辑
摘要: 问题场景:非常重要带状态服务,经常出现机器硬件故障,需要运维手动切换备机,修改配置,反应速度慢。 想过解决方案:1. 一致性hash,目前使用zk临时节点方案有些问题。像如果机器因为网络不稳定掉线,Zookeeper Client在触发Session Expried 事件时,无法确定已经掉线多长时... 阅读全文
posted @ 2013-06-11 00:22 LittlePeng 阅读(842) 评论(0) 推荐(0) 编辑
摘要: 主机有时会使用自己的IP地址作为目标地址发送ARP请求。这种ARP请求称为Gratuitous ARP,主要有两个用途:(1)检查重复地址(如果收到ARP响应表明存在重复地址)。 在windows NT下,网卡启动时,TCP/IP协议栈初始化时会最大发送3次Gratuitous ARP请求(初始化... 阅读全文
posted @ 2013-06-10 21:39 LittlePeng 阅读(3851) 评论(0) 推荐(0) 编辑
摘要: 所了解到的网络设备设计情况,网络设备CPU很弱,只用来完成如DHCP、ARP路由更新等较轻工作,主要的路由转发直接有ASIC专用芯片。ASIC芯片类似于一段固定程序由硬件来实现,处理速度和能效相比CPU要高出一两个数量级,而且可以由很多物理核心并行完成;这好比GPU要比CPU在专用计算上的差距。思科... 阅读全文
posted @ 2013-06-10 20:02 LittlePeng 阅读(1332) 评论(0) 推荐(0) 编辑
摘要: 使用zookeeper 实现一致性hash。redis服务启动时,将自己的路由信息通过临时节点方式写入zk,客户端通过zk client读取可用的路由信息。服务端使用python 脚本写的守护进程:https://github.com/LittlePeng/redis-manager脚本部署在red... 阅读全文
posted @ 2013-06-10 17:10 LittlePeng 阅读(21034) 评论(6) 推荐(1) 编辑
摘要: 根据一些测试整理出来的一份方案:1. Redis 性能对于redis 的一些简单测试,仅供参考:测试环境:Redhat6.2 , Xeon E5520(4核)*2/8G,1000M网卡Redis 版本:2.6.9客户端机器使用redis-benchmark 简单GET、SET操作:1. 1单实例测试... 阅读全文
posted @ 2013-06-10 16:42 LittlePeng 阅读(127926) 评论(27) 推荐(20) 编辑
摘要: 曾经在负责Mysql时,那会觉得IO就应该是异步的,但是C# 版本Mysql Driver竟然只支持同步调用方式,简直不可接受哇。然后就研究Mysql Driver,并改了一版异步的实现,并且做了一次小组分享: PPT,抓包分析 (2011/11/3)。接下来为应对故障排查,也做了一版将Mysql ... 阅读全文
posted @ 2013-06-10 16:12 LittlePeng 阅读(5318) 评论(1) 推荐(1) 编辑
摘要: 曾经写过一个远程网络抓包工具,为啥原远程抓了?在解决现网问题,或者统计数据,需要快速准确的抓取特点的网络吧。我们应用都是windows机器,经常需要抓XX服务某A机到XX服务B机的网络包,定位机器、查部署情况、IP地址、负载配置、同时操作多台设备等等都特别耗时,因为有了这个工具的设计初衷。于是开... 阅读全文
posted @ 2013-06-10 16:04 LittlePeng 阅读(10687) 评论(5) 推荐(2) 编辑
摘要: 以前负责DB相关,经常需要写专门工具将原始数据经过一定逻辑处理后导入目标库,工具需要做在不影响业务的情况下以最快的速度完成导入。 1. 一般数据源只有一个,而目的库有多个,对于DB读取要远快于写入,要注意读取的数据顺序保证能够对多个目的库同时写入。 2. Buffer 整个处理过程分为几段分别并行进行,为保证整个流水线每个时期都并行进行,每段之间需要足够大的Buffer。 3. 多线程+... 阅读全文
posted @ 2013-06-10 15:53 LittlePeng 阅读(431) 评论(0) 推荐(0) 编辑
摘要: keepalived官方有中文文档:LVS + Keepalived Chinese application doc- March 16, 2010。 keepalived 实现VRRP协议,从路由级别实现VIP切换,可以完全避免类似heartbeat 脑裂问题。可以很nice的实现主从、主备、互备方案,尤其是无状态业务,有状态业务就需要额外花些功夫了。 既然mysql 可以使用keepalived很好的做到主从切换,redis自然也就有样学样就成了。 redis主从实现完全没有mysql成熟,仅仅是可用而已,按照作者规划相应改进需要等3.0以后了。经过测试主从也不是那么完全不靠谱。... 阅读全文
posted @ 2013-04-14 23:32 LittlePeng 阅读(15558) 评论(26) 推荐(1) 编辑
摘要: 测试条件限制,100M带宽,设置value 20字节:1.基准测试,两台机器之间发送: ./redis-benchmark -h 10.10.209.104 -p 7002 -q -l -d 20 -r 100000 -t set 每秒速度:6W,一个redis-server cpu 占用93%2.TwemproxyA 服务器: 2个redis实例+redis-benchmarkB服务器:一个Twemporxy 指向A服务器的两个redis 实例每秒速度:5WTwemproxy 占用CPU 96 % ,两个redis-server 分别占用 25% CPU服务器CPU:E56... 阅读全文
posted @ 2013-04-14 21:39 LittlePeng 阅读(810) 评论(0) 推荐(0) 编辑
摘要: 准备环境: 因为找不到可用的1000M网络机器,使用一根直通线将两台笔记本连起来组成1000M Ethernet网。没错,是直通线现在网卡都能自适应交叉线、直通线,速度不受影响,用了一段时间机器也没出问题。 服务端:T420 i5-2520M(2.5G)/8G ubuntu 11.10 客... 阅读全文
posted @ 2013-01-26 20:18 LittlePeng 阅读(13887) 评论(1) 推荐(0) 编辑
摘要: CLR会通过VirtualAlloc预先提交整个栈,提交之后就立即占用物理空间(物理内存或磁盘)。也许你会发现查看内存占用的时候看起来并没有占用那么多内存,那是因为线程栈一般很少用到1M内存的全部,提交内存在未被使用之前并不会真正分配。看看我的内存截图:提交数内和已用内存并不相等,因为很多... 阅读全文
posted @ 2012-07-14 18:36 LittlePeng 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 为内存映射文件模块单独弄设计的,用于MMF上实现多进程见消息传输;测试中发现命名管道的效率很差,性能还不如用Socket Loopback,决定试试MMF。测试了下性能还不错,在我机器上:测试每个包4K 每秒可以执行近100w写入+读取操作,也就是每秒8G的数据操作,可以满足觉大多数业务需求。唯一不... 阅读全文
posted @ 2012-06-24 20:55 LittlePeng 阅读(1115) 评论(3) 推荐(0) 编辑
摘要: .Net4 增加的System.Collection.Concurrent线程安全的集合实现,这儿有MS的性能测试报告:Thread-safe Collections in .NET Framework 4 and Their Performance Characteristics。总的来说效率还是... 阅读全文
posted @ 2012-05-26 23:33 LittlePeng 阅读(9650) 评论(0) 推荐(3) 编辑
摘要: 查了下MSDN的解释: MemoryBarrier is required only on multiprocessor systems with weak memory ordering (for example, a system employing multiple Intel Itanium... 阅读全文
posted @ 2012-05-26 21:55 LittlePeng 阅读(5590) 评论(2) 推荐(1) 编辑
摘要: 多线程环境下使用那种锁往往凭个人感觉,缺乏测试数据的支持很容易走入误区,就像我知道的很多人就觉得Lock好慢好慢,Lock-Free 就能飞起来一样。下面对Lock、Level-Lock、Lock-Free、ReaderWriterLock、ReaderWriterLockSlim 这几种锁分别做下... 阅读全文
posted @ 2012-03-17 18:26 LittlePeng 阅读(7250) 评论(3) 推荐(1) 编辑
摘要: 闲着没事试着写写,本来想应该挺简单的,但一写就折腾大半天。Http要实现多线程现在需要WebHost对HttpHeader中Range支持,有些资源不支持Range头就必须顺序下载。协议参考 rfc2616:http://www.ietf.org/rfc/rfc2616.txt大概步骤:1.检测Ra... 阅读全文
posted @ 2011-05-28 20:55 LittlePeng 阅读(1257) 评论(1) 推荐(1) 编辑
摘要: 这个前段时间无聊写的,还有不基于IIS的实现,HttpListener和Socket(Socket暂时没写)请移步到这儿下载源代码。 所谓的长连接就是服务端长时间挂起请求, 不立即返回,等必要时在返回。至于客户端通常有Iframe的Chunked方式和普通的XMLHTTPRequest。Iframe 阅读全文
posted @ 2011-01-01 00:21 LittlePeng 阅读(4356) 评论(10) 推荐(3) 编辑
摘要: .Net源码老早就和和Vs2008一起开源出来了,但是却只能调试的时候使用。后来有个工具可以一起下载,但是下下来的貌似不全,也好多错误。 刚刚发现一个地址:http://referencesource.microsoft.com/netframework.aspx,貌似还很早就有这个了,竟让一直都不知道。就下载了一个 里面有很多版本8.0好像就是.net 3.5sp1,4就是.net4。现在是100来M的msi安装包,解压后600多M,其中一半是pdb文件。源码有200多M吧。不过看一下这路径,他丫不就远程调试那个包吗,呃,不说啥,将就整理下吧。 没办法自己整理吧,写了个小程序,递... 阅读全文
posted @ 2010-08-22 12:55 LittlePeng 阅读(5826) 评论(7) 推荐(0) 编辑
摘要: CLR Profiler 有两个版本,分别用于CLR1.1 和 CLR2.0,至于CLR4试了一些也可以,但不知道是否完全兼容不,分别2003,和2005 由微软CLR性能组发布的。几百k很小巧的工具,有给出源代码,核心部分用C++写的,UI使用C#编写。CLR Profiler使用注入式测试,他会 阅读全文
posted @ 2010-08-21 17:45 LittlePeng 阅读(4328) 评论(1) 推荐(1) 编辑
摘要: 这个视频看了快两三个月了,一直很是在意里面提到的很多很有意思的问题,因为都没有给出一个答案啊。就又看了一遍,边听边记先把问题题目记录下来。 1.对comet技术的了解,什么时候用,什么时候不用 2.如何尽可能的做到浏览器与服务器的时间同步 3.回写一次innerHTML并去除它,你能得到一样的数据吗 阅读全文
posted @ 2010-06-15 20:27 LittlePeng 阅读(918) 评论(6) 推荐(1) 编辑
摘要: 上一篇:通过flv的url得到视频截图 但是不能通过一些视频网站连接直接得到图片,而只能通过flv的url得到图片,很鸡肋的一个东西。偶尔发现有很多网站提供在线flv解析.如我要用的这个:http://www.flvcd.com/ ,号称支持66个视频网站的flv地址获取,那就直接用它的了。通过它得 阅读全文
posted @ 2010-05-08 17:14 LittlePeng 阅读(661) 评论(0) 推荐(0) 编辑
摘要: 先得说一下,这个只能通过flv的url地址得到图片,本来也是打算做通过视频网站的url得到图片的,但是实现起来不容易,各大视频网站极力隐藏他们的地址(后篇有对此的一些 研究:通过flv的url得到视频截图)。flv的实际物理地址往往不会那么容易让你得到,ajax调来调去的,不同的网站实现方法还不一样 阅读全文
posted @ 2010-04-17 14:19 LittlePeng 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 今天周末,休息一下,一觉就睡到了12点,嘎嘎。这个学期还是第一回,自从开学以来,看了半个月的书,接下了大多在修改家园的博客。前几天完工了 ,现在把写在家园的一篇博客copy过来。 一套博客系统最重要的部分就要属模板了,对于风格每个人都有自己不同需求,系统需要适应各种模板和将来的扩展性。对于家园来说完 阅读全文
posted @ 2010-03-27 20:55 LittlePeng 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 如果自己想运营一个小网站,但是里面的信息时自己一个人无法及时更新,我们可以通过采集机器人实时自动的更新。例如现在的小说阅读,基本上所有的小说都是通过起点连载,那么多的盗版都是通过后台定期爬的,一般更新时差只有几个小时。.net采集使用webrequeset请求,而其中的难点就是权限的验证、html分 阅读全文
posted @ 2009-11-07 14:57 LittlePeng 阅读(2906) 评论(0) 推荐(3) 编辑
摘要: 重写repeater 增加分页的功能 效果图: 代码如下,如果觉得repeater不好的话,把分页的部分提出来: 代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter 阅读全文
posted @ 2008-08-25 11:15 LittlePeng 阅读(1693) 评论(14) 推荐(2) 编辑
摘要: 一年前花了两天的时间写的,最近又有用到了,顺便在这里分享一下。 分页效果如: 调用 GbookPaging(PageNum) 方法用来跳转到那一页,返回对应分页的html。 Code highlighting produced by Actipro CodeHighlighter (freeware 阅读全文
posted @ 2008-08-24 00:12 LittlePeng 阅读(545) 评论(1) 推荐(0) 编辑
摘要: 浏览器出于安全考虑默认禁用xmlhttp的跨域,但一般不同业务接口会放在不同域名下,支持跨域调用也是很有必要的。 其中一种方案是用下载javascript来实现,不符合HTTP 规范做法,仅供参考慎用。 下面的代码是一个消息通知,就是在以下多个站点下发布同一个信息,后面还有个“我知道了”点击消失,而 阅读全文
posted @ 2008-08-24 00:07 LittlePeng 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 博客园后台就是用codehightlight组件显示漂亮的代码片段,在我们校园博客系统中也支持一下。 组件是免费开源的,通过官网链接 codehightlight 下载完成后: 1. 在webconfig中设置好配置 2. 往前端编辑器中添加一个按钮,点击window.open(url)一个新的窗口 阅读全文
posted @ 2008-08-23 23:59 LittlePeng 阅读(590) 评论(0) 推荐(0) 编辑