技术>技术
jeanter
这个作者很懒,什么都没留下…
展开
-
关于上下文切换的思考
vmstat 的结果中有 cs这一项,这里面的上下文切换 是指的进程切换 还是 只有进程的上下文切换, 进程的上下文切换,不一定会有进程的切换,如,进程通过系统调用进入内核态,当前进程进入了内核态,栈发生了变化,会使用内核态栈,内核态栈会保持当前cpu的大多数寄存器的内容,,cpu会从用户态切换到内核态,,这些上下文其实已经发生了变化,但是进程还是当前这个进程,系统调用后,立马回到用户态,用保存在原创 2016-04-20 14:09:11 · 808 阅读 · 0 评论 -
系统调用,上下文切换及中断概念的汇总
仔细揣摩了一段时间.系统调用过程,用户进程进入内核态,进程栈进入内核态栈, cpu进入内核态,cpu用户态各寄存器的值保存到内核态栈,执行内核态代码. 执行完从内核态返回到用户态,包括进程栈返回到用户态栈,cpu返回到用户态,cpu各寄存器的值用之前保存在内核态栈的值还原. 内核在执行系统调用时处于进程上下文中,current指针指向当前进程,即引发系统调用的进程...原创 2016-06-28 15:28:00 · 5392 阅读 · 1 评论 -
技术的变革
待续原创 2017-08-25 20:44:42 · 503 阅读 · 0 评论 -
ESP EBP
ESP 一直指向栈的栈顶,在intel x86的系统中,堆栈在内存中是从高地址向低地址扩展,因此,栈顶地址是不断减小的,越后入栈的数据,所处的地址也就越低。每一次嵌套调用时 esp表示当前方法的栈顶,在进入嵌套方法前,ebp入栈,ebp再保存当时esp的地址, esp在进入嵌套方法后,开始发生变化,此时,可以通过ebp返回到上一个方法的调用地址。再次嵌套时,esp表示当前方法的栈顶,ebp(上一个原创 2016-10-05 11:20:05 · 444 阅读 · 0 评论 -
吞吐量和延时
某单机计算秘钥的服务(cpu bound). 4核,接受网络req,最大吞吐10万/s ,(4核cpu均达到99%以上), 当吞吐达到10万/s时 , 对于单个req延时是多少? 假设服务有个队列,长度为10万,我们时间统计周期降低到1ms,前任意时刻,假设每1ms有100个req进来,4核cpu都能好的处理完,队列长度不超过100,也就是每req的排队时间不超过100,原创 2017-02-22 10:17:41 · 3934 阅读 · 0 评论 -
优秀系统的目标
1.为业务服务,产生价值.这是基本使命,脱了了这个,下面的都是空洞。 2. 满足恶劣环境下的稳定性。 3.结构清晰,简单,优雅,小而美. 并且廉价. 越复杂代表越不可控,不可控的系统代表着脆弱. 4 运维,安全,统计,监控 ,维护,扩展, 简洁好用。 5 快 ,响应快,启动快,配置快,上线快,替换快,扩展快. 6 软件的本质是操纵原创 2016-06-22 13:02:50 · 450 阅读 · 0 评论 -
关于索引的思考
存储系统为了提高检索的效率,都会对需要检索的列进行索引,索引的数据结构有很多,如数据库常用的B+树(mysql oracle的常见索引),NoSql数据库中用到的Hash(memcache,redis),多阶Hash,跳跃表(lucence,levelDb)。排序数组。除Hash外,其他的索引结构所管理的key都是排序过的,特别是B+树,所有的叶子节点从左至右就是一个大大的排序数组,检索过程就是通原创 2016-04-20 16:02:16 · 368 阅读 · 0 评论 -
多Reactor
这两天发现了一个bug,一个nio的server,多Reactor , 设置的非阻塞模式, 当前channel可写时,代码 直接一句 channel.write( wBuf ); 将当前连接上处理好的响应包一个一个写出去. 因为这个写是非阻塞的, channel.write的时候 如果当前内核socket缓冲区的空间比当前这个输出buffer要小 ,这个方法会也会马上返回,但是...原创 2016-05-30 15:10:13 · 415 阅读 · 0 评论 -
系统的分类
我所接触过的系统可以分为5类1.以关系数据库为主要存储的一类系统的,或者附加少量数据的noSql的存储,特点是逻辑复杂,多变。如各类业务类系统,传统的信息系统,中小型电商系统的各类业务系统(sku 千万级,日单量 100万级),包括商品,价格,库存,订单,用户,会员,购物车,结算等2 有数据存储,但是关系数据库不能适应的一类系统,特点是业务体量大,数据规模大,如腾讯的各类在线业务,QQ,微信,QQ...原创 2018-01-24 15:53:25 · 2427 阅读 · 0 评论