自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (4)
  • 收藏
  • 关注

原创 当心!TCP本机客户端连接本机服务器

上周,在我们进行性能测试的时候,发现了一个问题。我们的服务器上启了一个redis服务端,侦听0.0.0.0的1234端口,同处在本机的另外一个进程会频繁发起到该服务端的短连接,结果导致了两个问题:1.大量的TIME_WAIT状态的连接;2.发起连接的进程的CPU占用率接近100%。这两个结果严重影响了我们网关的性能,在分析具体原因之前,首先做一个提倡,那就是:本机连接本机,首选UNIX域套接字而不

2015-09-27 23:07:30 9994 9

原创 Linux内核中几个比较有意思的解释(进程调度算法,页面调度算法,非线性工作集)

1.O(1)调度器的时间计算公式与CFS调度器Linux 2.6.23之前普遍采用了O(1)调度器,它是一种基于优先级的时间片调度算法,所谓的O(1)只是它的一些精巧的数据结构使然,在不考虑动态补偿/惩罚的情况下,只要优先级确定,那么时间片就是固定的。2.6.23以后的CFS呢,它是一种基于权重的非时间片调度算法,进程每次执行的时间并不是固定的,而是根据进程数在一个准固定周期内按照其权重比例的时间

2015-09-26 12:31:34 8747 3

原创 Linux TCP实现优化的背后想法

想象一下当初为什么不让多个进程/线程在一个相同的IP地址和端口上侦听,很简单,这是因为TCP/IP模型将一个端口作为一个四层复用解复用的唯一标识,也就是一个四层地址,正如IP地址属于一个主机一样(属于一块网卡?),一个IP/端口对属于一台主机上一个特定的进程,它只是一个保证唯一性的静态标识。世界上不同的主机不能有相同的IP地址,一台主机上绑定特定IP地址的不同进程也不能有相同的端口,否则就不知道一

2015-09-25 00:03:33 7989 7

原创 同样思路解决不同的问题,集大成者

1.BFS调度器与O(1)调度器O(1)调度器采用二级分类,第一级是CPU,即每一个CPU一个队列,第二级是优先级,每CPU队列又细分为140个优先级队列。第一级采用负载均衡调度,第二级采用优先级调度。虽然很清晰,但是要加入“小手段”来补偿/惩罚。本质上CFS调度器也一样,只是采用了红黑树以及新增了一个虚拟时钟层屏蔽了补偿/惩罚操作。BFS调度器同样采用二级队列,第一级是优先级分类,第二级是个简单

2015-09-24 09:25:05 4795 1

原创 上海虹桥机场点烟器与UNIX哲学

今天外出,资深烟民在机场安检后怎能不找吸烟室...上海虹桥机场,我看到了下面的设施:很简单,不先进,也许你会说我孤陋寡闻,但我不反驳。这个装置真的让我怦然心动,真的!这种设计不会出自传统中国设计师之手,因为传统设计师希望让自己的设计很复杂以提高门槛,觉得自己很牛X。这个设计组合了最简单的几个小物件,一把锁,几个打火机,一个固定铁架子,足够了,难道不是吗?很美!       我老婆质问我:谁会去拿几

2015-09-23 23:59:01 7698 3

原创 多核心Linux内核路径优化的不二法门之-多核心平台TCP优化

本文可以作为《Linux转发性能评估与优化(转发瓶颈分析与解决方案)》的姊妹篇,这两篇文章结合在一起,恰好就是整个Linux内核协议栈的一个优化方案。事实上Linux协议栈本来就是面向两个方向的,一个是转发,更多的是本地接收。目前大量的服务器采用Linux作为其载体,更加体现了协议栈本地处理相对于转发的重要性,因此本文就这个问题扯两句,欢迎拍砖!0.声明:0).关于来源昨天就答应皮鞋厂老板了,只是

2015-09-23 23:03:00 12320 3

原创 多核心Linux内核路径优化的不二法门之-slab与伙伴系统

作为这个系列的第一篇,我先来描述一下slab系统。因为近些天有和同事,朋友讨论过这个主题,而且觉得这个主题还算比较典型,所以就作为第一篇了。其实按照操作系统理论来讲,进程管理应该更加重要些,按照我自己的兴趣来讲,IO管理以及TCP/IP协议栈会更加有分量,关于这些内容,我会陆续给出。       Linux内核的slab来自一种很简单的思想,即事先准备好一些会频繁分配,释放的数据结构。然而标准的s

2015-09-16 05:08:00 9123 4

原创 多核心Linux内核路径优化的不二法门-序

提到这个主题,我感到愤怒,我觉得自己被玩了一万次还保持着君子的无谓。其实内心充满了邪火!也许我应该放弃,也许应该看看这个世界,我无法。何时?何地?何人?何事?何苦!何如!何妨!何必!走过,遇见,相知,相恋!相亲,黯淡,相顾,长叹!十年!又有谁知道我的罪?!燃尽的激情让我选择放弃;然而是意义让我重新开始!是什么力量让崩溃来的如此彻底,然而又是什么证据表明苏醒是如此的无疑!心缥缈,人逍遥,悲欢泪,何足

2015-09-13 11:02:42 4514

一个iptables的stateless NAT模块实现

如果你在寻找Linux上配置诸如Cisco设备上的static双向NAT的方法,这个或许就是你想要的; what?你觉得它完不成PAT?是的,它不行。但是想做PAT为何不使用现有的iptables实现呢?它可以自动为你解决元组唯一性问题。不要从概念上分析,事实上,static双向NAT是完全对称的,一对一的 ,也只有在BOX两边的网络在拓扑级别是完全对等的情形下,这种NAT或许才是有用的,Cisco设备经常处在这样的位置,比如一个很大的stub节点的出口位置,比如两个domain的中间位置... 我将名字取为STATIC-2-WAY-NAT,比较长也比较怪,完全不符合UNIX的小写短名传统,我的想法是:这样可以少写很多的帮助信息,因为名字就是自解释的。

2014-12-27

模块化的nf-HiPAC

原版的nf-hipac需要为内核打patch,且只支持较低版本的内核,构建起来相对比较麻烦。 模块化后的nf-hipac可以直接作为内核可加载模块编译,且适配了高版本的Linux内核。为了移植工作简化,去掉了和iptables模块的联动支持!

2014-11-21

配置文件还有一些other

代码和配置iptables配置文件,还有一些别的东西

2010-04-16

关于linux内核以及其他个人体会的文集

本文集是我用将近两年的时间写成的,大多数文章是关于linux内核的,另外还有一些我自己对计算机的理解,还有一些历史,音乐方面的东西。适合于对linux内核思想感兴趣的阅读,文章偏重于对于思想的理解。

2009-09-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除