Linux运维
zhangyanfei01
欢迎关注个人公众号:开发内功修炼
展开
-
内存随机也比顺序访问慢,带你深入理解内存IO过程
平时大家都知道内存访问很快,今天来让我们来思考两个问题:问题1:内存访问一次延时到底是多少?你是否会进行大概的估算?例如笔者的内存条的Speed显示是1066MHz,那是否可以推算出内存IO延时是1s/1066MHz=0.93ns? 这种算法大错特错。问题2:内存存在随机IO比顺序IO慢的问题吗? 我们都知道磁盘的随机IO要比顺序IO慢的多(操作系统底层还专门实现了电梯调度算法来缓...原创 2019-10-14 08:52:34 · 1154 阅读 · 6 评论 -
协程究竟比线程能省多少开销?
前文中中我们用实验的方式验证了Linux进程和线程的上下文切换开销,大约是3-5us之间。这个开销确实不算大,但是海量互联网服务端和一般的计算机程序相比,特点是:高并发:每秒钟需要处理成千上万的用户请求 周期短:每个用户处理耗时越短越好,经常是ms级别的 高网络IO:经常需要从其它机器上进行网络IO、如Redis、Mysql等等 低计算:一般CPU密集型的计算操作并不多即使3-5us的...原创 2019-08-27 18:41:32 · 1492 阅读 · 2 评论 -
一次系统调用开销到底有多大?
首先说说系统调用是什么,当你的代码需要做IO操作(open、read、write)、或者是进行内存操作(mmpa、sbrk)、甚至是说要获取一个系统时间(gettimeofday),就需要通过系统调用来和内核进行交互。无论你的用户程序是用什么语言实现的,是php、c、java还是go,只要你是建立在Linux内核之上的,你就绕不开系统调用。图1.png大家可以通过strace命令来查看...原创 2019-08-28 19:58:25 · 1495 阅读 · 0 评论 -
追踪将服务器CPU耗光的凶手!
前面我们讨论系统调用的时候结论是耗时200ns-15us不等。不过我今天说的我的这个遭遇可能会让你进一步认识系统调用的真正开销。在本节里你会看到一个耗时2.5ms的connect系统调用,注意是毫秒,相当于2500us!问题描述当时是我的一个线上云控接口,是nginx+lua写的。正常情况下,单虚机8核8G可以抗每秒2000左右的QPS,负载还比较健康。但是该服务近期开始出现一些500状态...原创 2019-08-29 19:15:30 · 461 阅读 · 0 评论 -
软中断竟然是可一个CPU使劲造?
一个奇怪的问题在了解了软中断对CPU的占用之后,如果你动手操作查看过的话,相信会和我一样会遇到下面这个的问题。如果没有实际遇到也没关系,你可以用hping命令制造一些网络接收包来观测。# hping3 -S -p 80 -i 你的服务器ip我当时对一台线上虚机查看软中断造成的CPU开销的时候,发现很奇怪,那就是所有的软中断几乎都是被一个CPU处理的。用top看si列,绝大部...原创 2019-08-31 20:16:48 · 628 阅读 · 0 评论 -
一次简单的redis请求会有哪些CPU开销?
我问大家一个问题,下图中一个最简单的例子,会导致哪些CPU开销产生?你是否能够说清楚?<?php ... $redis->get('test'); ...这个例子一下子就把大家在我的文章里学到的东西和你的实际工作结合起来了。怎么样,是不是足够简单?就是一句php代码从redis实例中获取一个key的value值而已,相信类似的代码你天天都在写。...原创 2019-09-02 20:27:23 · 388 阅读 · 0 评论 -
函数调用太多了会有性能问题吗?
在现代的开发工作中,相信绝大部分的同学手头的项目都不是从第零行代码开始搭建的。各个语言都有自己流行的代码框架,如PHP的有Laravel、CodeIgniter、ThinkPHP等等。大家都是在自己的框架的基础上添加自己的业务代码逻辑,开启开发工作。还记得我们团队有位开发同学当时问过我一个问题,我们用xx框架这么重,一个用户请求过来即使什么也不干,都已经进行了那么多次的函数调用了,适合用来做接口...原创 2019-09-10 14:20:24 · 3407 阅读 · 1 评论 -
为什么内存为什么是以字节为单位的?
我觉得在冯诺依曼体系结构里,CPU和内存是最重要的设备。如果没有CPU和内存,服务器将完全无法运行。 所以继第一阶段分享完了CPU篇之后,今天就开始内存篇。我们以一个最简单的问题开篇,为什么内存地址0x0001和内存地址0x0002之间差的是一个byte,而不是一个bit?我想你对内存存储的计算已经熟练于心,a变量占用内存多少字节,b变量占用内存多少字节。但是你有没有深入思考过,为什么我们用的...原创 2019-09-18 08:12:59 · 5736 阅读 · 1 评论