随笔分类 -  .Net

摘要:问题场景:非常重要带状态服务,经常出现机器硬件故障,需要运维手动切换备机,修改配置,反应速度慢。 想过解决方案:1. 一致性hash,目前使用zk临时节点方案有些问题。像如果机器因为网络不稳定掉线,Zookeeper Client在触发Session Expried 事件时,无法确定已经掉线多长时... 阅读全文
posted @ 2013-06-11 00:22 LittlePeng 阅读(862) 评论(0) 推荐(0)
摘要:使用zookeeper 实现一致性hash。redis服务启动时,将自己的路由信息通过临时节点方式写入zk,客户端通过zk client读取可用的路由信息。服务端使用python 脚本写的守护进程:https://github.com/LittlePeng/redis-manager脚本部署在red... 阅读全文
posted @ 2013-06-10 17:10 LittlePeng 阅读(21062) 评论(6) 推荐(1)
摘要:曾经在负责Mysql时,那会觉得IO就应该是异步的,但是C# 版本Mysql Driver竟然只支持同步调用方式,简直不可接受哇。然后就研究Mysql Driver,并改了一版异步的实现,并且做了一次小组分享: PPT,抓包分析 (2011/11/3)。接下来为应对故障排查,也做了一版将Mysql ... 阅读全文
posted @ 2013-06-10 16:12 LittlePeng 阅读(5335) 评论(1) 推荐(1)
摘要:曾经写过一个远程网络抓包工具,为啥原远程抓了?在解决现网问题,或者统计数据,需要快速准确的抓取特点的网络吧。我们应用都是windows机器,经常需要抓XX服务某A机到XX服务B机的网络包,定位机器、查部署情况、IP地址、负载配置、同时操作多台设备等等都特别耗时,因为有了这个工具的设计初衷。于是开... 阅读全文
posted @ 2013-06-10 16:04 LittlePeng 阅读(10774) 评论(5) 推荐(2)
摘要:CLR会通过VirtualAlloc预先提交整个栈,提交之后就立即占用物理空间(物理内存或磁盘)。也许你会发现查看内存占用的时候看起来并没有占用那么多内存,那是因为线程栈一般很少用到1M内存的全部,提交内存在未被使用之前并不会真正分配。看看我的内存截图:提交数内和已用内存并不相等,因为很多... 阅读全文
posted @ 2012-07-14 18:36 LittlePeng 阅读(401) 评论(0) 推荐(0)
摘要:为内存映射文件模块单独弄设计的,用于MMF上实现多进程见消息传输;测试中发现命名管道的效率很差,性能还不如用Socket Loopback,决定试试MMF。测试了下性能还不错,在我机器上:测试每个包4K 每秒可以执行近100w写入+读取操作,也就是每秒8G的数据操作,可以满足觉大多数业务需求。唯一不... 阅读全文
posted @ 2012-06-24 20:55 LittlePeng 阅读(1128) 评论(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 阅读(9675) 评论(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 阅读(5618) 评论(2) 推荐(1)
摘要:多线程环境下使用那种锁往往凭个人感觉,缺乏测试数据的支持很容易走入误区,就像我知道的很多人就觉得Lock好慢好慢,Lock-Free 就能飞起来一样。下面对Lock、Level-Lock、Lock-Free、ReaderWriterLock、ReaderWriterLockSlim 这几种锁分别做下... 阅读全文
posted @ 2012-03-17 18:26 LittlePeng 阅读(7343) 评论(3) 推荐(1)
摘要:闲着没事试着写写,本来想应该挺简单的,但一写就折腾大半天。Http要实现多线程现在需要WebHost对HttpHeader中Range支持,有些资源不支持Range头就必须顺序下载。协议参考 rfc2616:http://www.ietf.org/rfc/rfc2616.txt大概步骤:1.检测Ra... 阅读全文
posted @ 2011-05-28 20:55 LittlePeng 阅读(1278) 评论(1) 推荐(1)
摘要:这个前段时间无聊写的,还有不基于IIS的实现,HttpListener和Socket(Socket暂时没写)请移步到这儿下载源代码。 所谓的长连接就是服务端长时间挂起请求, 不立即返回,等必要时在返回。至于客户端通常有Iframe的Chunked方式和普通的XMLHTTPRequest。Iframe 阅读全文
posted @ 2011-01-01 00:21 LittlePeng 阅读(4390) 评论(10) 推荐(3)
摘要:CLR Profiler 有两个版本,分别用于CLR1.1 和 CLR2.0,至于CLR4试了一些也可以,但不知道是否完全兼容不,分别2003,和2005 由微软CLR性能组发布的。几百k很小巧的工具,有给出源代码,核心部分用C++写的,UI使用C#编写。CLR Profiler使用注入式测试,他会 阅读全文
posted @ 2010-08-21 17:45 LittlePeng 阅读(4389) 评论(1) 推荐(1)