《再次深入到ip_conntrack的conntrack full问题》最后的一个问题提示 ip_conntrack有一个event机制,可以主动通报ip_conntrack的一些事件,包括追踪信息到期删除等事件,通知给谁呢?当然是通知给所有感兴趣的模块了,其中之一就是用户态进程,这样用户态进程得知 ...
分类:
系统相关 时间:
2019-02-17 12:47:57
阅读次数:
206
一直以来我一直以为操作系统内核是高大上的东西,但是实际上用户态的应用才是!上周的一次技术交流中,一家网络加速卡厂商声称他们的协议栈是用户态的协议栈,用来提高性能,我对其产品直接就泄了气,然而会后,我查阅了相关的资料,找到一篇文章《 千万并发的秘密-内核是问题的根本》,写出了我的心声,原来我一直都是这 ...
分类:
其他好文 时间:
2019-02-17 12:40:30
阅读次数:
283
这个问题其实是我几个月前碰到,只是那时好像还在回忆着什么,心系上海,还没有完全适应这个新环境,加上这个问题也不是什么太深奥的问题,觉得太简单了,就搁置了。今天周末闲来无事就顺便写来来了。加上深圳经常下雨,越来越喜欢了。 本文没什么深度,仅为记录,以及阐述一个“看文档学习原理->猜测并自行实现->对比 ...
分类:
系统相关 时间:
2019-02-17 10:46:03
阅读次数:
229
Linux内核为大规模支持100Gb/s网卡准备好了吗?并没有 之前用 千兆的机器 下载速度 一般只能到 50MB 左右 没法更高 万兆的话 可能也就是 200MB左右的速度 很难更高 不知道后续的服务器 会不会 能够提升一下 之前坐着说到了 120nm 的时间 发送一个包 记得CPU的指令周期是 ...
分类:
Web程序 时间:
2019-02-10 09:23:15
阅读次数:
200
版本信息: ODP(Open Data Plane): 1.19.0.2 OFP(Open Fast Path): 3.0.0 1、存在的问题 OpenFastPath作为一个开源的用户态TCP/IP协议栈,其对用户提供的Socket API,无论是宏定义、数据结构还是函数,均以OFP_开头。如下图 ...
分类:
系统相关 时间:
2019-02-04 19:32:40
阅读次数:
309
Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的。而操作系统实现线程之间的切换这就需要从用户态转换到核心态,这个成本非常高,状态之间的转换需要相对比较长的时间,这就是为什么Synchronize... ...
分类:
其他好文 时间:
2019-01-28 01:14:38
阅读次数:
143
一 协程介绍 协程:是单线程下的并发,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的。、 需要强调的是: 对比操作系统控制线程的切换,用户在单线程内控制协程的切换 优点如下: 缺点如下: 总结协程特点: 二 Green ...
分类:
其他好文 时间:
2019-01-21 21:15:29
阅读次数:
173
一:cpu性能指标 首先:cpu使用率。非空闲时间占总cpu时间的百分比。根据cpu上运行的任务的不同,又被分为用户CPU,系统CPU,等待i./oCPU,软中断和硬中断等。 用户cpu使用率,包括用户态,低优先级用户态。 系统cpu使用率,表示cpu内核态运行的时间百分比。 等待i/o,通常也称i ...
分类:
其他好文 时间:
2019-01-21 20:10:38
阅读次数:
268
Goroutine 是用户态自己实现的线程,调度方式遇到IO/阻塞点方式就会让出cpu时间(其实也看编译器的实现,如果TA在代码里面插入一些yield,也是可以的。 反正现在不是抢占式的。) 不能设置goroutine ID, 也拿不到(可以调用C API或者自己修改源码暴漏出来,实际上修改起来挺简 ...
分类:
其他好文 时间:
2019-01-18 12:22:44
阅读次数:
177
你好2019!一起努力呀! 1、什么是runloop runloop是通过内部维护的事件循环对事件/消息进行管理的一个对象。 事件循环(Event loop):通俗的解释:没有消息处理的时候,休眠以避免资源占用;有消息需要处理时,立即被唤醒!书面的解释:没有需要处理的消息时,用户态切换为内核态;有消 ...
分类:
其他好文 时间:
2019-01-13 18:09:13
阅读次数:
172