文章分类 -  极客时间

上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 45 下一页
摘要:你好,我是陶辉。 我们在[第8课] 中讲了如何从C10K进一步到C10M,不过,这也意味着TCP占用的内存翻了一千倍,服务器的内存资源会非常紧张。 如果你在Linux系统中用free命令查看内存占用情况,会发现一栏叫做buff/cache,它是系统内存,似乎与应用进程无关。但每当进程新建一个TCP连 阅读全文
posted @ 2023-01-04 12:21 易先讯 阅读(28) 评论(0) 推荐(0)
摘要:你好,我是陶辉。 上一节课,我们介绍了建立连接时的优化方法,这一节课再来看四次挥手关闭连接时,如何优化性能。 close和shutdown函数都可以关闭连接,但这两种方式关闭的连接,不只功能上有差异,控制它们的Linux参数也不相同。close函数会让连接变为孤儿连接,shutdown函数则允许在半 阅读全文
posted @ 2023-01-04 12:20 易先讯 阅读(14) 评论(0) 推荐(0)
摘要:你好,我是陶辉。 上一讲我们提到TCP在三次握手建立连接、四次握手关闭连接时是怎样产生事件的,这两个过程中TCP连接经历了复杂的状态变化,既容易导致编程出错,也有很大的优化空间。这一讲我们看看在Linux操作系统下,如何优化TCP的三次握手流程,提升握手速度。 TCP是一个可以双向传输的全双工协议, 阅读全文
posted @ 2023-01-04 12:20 易先讯 阅读(41) 评论(0) 推荐(0)
摘要:你好,我是陶辉。 上一讲介绍了广播与组播这种一对多通讯方式,从这一讲开始,我们回到主流的一对一通讯方式。 早些年我们谈到高并发,总是会提到C10K,这是指服务器同时处理1万个TCP连接。随着服务器性能的提升,近来我们更希望单台服务器的并发能力可以达到C10M,也就是同时可以处理1千万个TCP连接。从 阅读全文
posted @ 2023-01-04 12:20 易先讯 阅读(6) 评论(0) 推荐(0)
摘要:你好,我是陶辉。从这一讲开始,我们将从单机进入网络层面的性能优化。 我们接触过的绝大多数通讯方式,无论是面向连接的HTTP协议,还是无连接的DNS协议,都是一对一收发消息的。其实,除了一对一,还有一对多的通讯方式,它在网络资源的利用上效率要比一对一高得多。这种一对多的通讯方式,在局域网中有很广泛的应 阅读全文
posted @ 2023-01-04 12:19 易先讯 阅读(10) 评论(0) 推荐(0)
摘要:你好,我是陶辉。 上一讲我们谈到了实现高并发的不同方案,这一讲我们来谈谈如何根据业务场景选择合适的锁。 我们知道,多线程下为了确保数据不会出错,必须加锁后才能访问共享资源。我们最常用的是互斥锁,然而,还有很多种不同的锁,比如自旋锁、读写锁等等,它们分别适用于不同的场景。 比如高并发场景下,要求每个函 阅读全文
posted @ 2023-01-04 12:19 易先讯 阅读(11) 评论(0) 推荐(0)
摘要:你好,我是陶辉。 上一讲谈到,零拷贝通过减少上下文切换次数,提升了文件传输的性能。事实上高并发服务也是通过降低切换成本实现的,这一讲我们来看看它是如何做到的。 如果你需要访问多个服务来完成一个请求的处理,比如实现文件上传功能时,首先访问Redis缓存,验证用户是否登陆,再接收HTTP消息中的body 阅读全文
posted @ 2023-01-04 12:19 易先讯 阅读(12) 评论(0) 推荐(0)
摘要:你好,我是陶辉。 上一讲我们谈到,当索引的大小超过内存时,就会用磁盘存放索引。磁盘的读写速度远慢于内存,所以才针对磁盘设计了减少读写次数的B树索引。 磁盘是主机中最慢的硬件之一,常常是性能瓶颈,所以优化它能获得立竿见影的效果。 因此,针对磁盘的优化技术层出不穷,比如零拷贝、直接IO、异步IO等等。这 阅读全文
posted @ 2023-01-04 12:18 易先讯 阅读(23) 评论(0) 推荐(0)
摘要:你好,我是陶辉。 上一讲我们谈到,Ptmalloc2为子线程预分配了64MB内存池,虽然增大了内存消耗,但却加快了分配速度,这就是以空间换时间的思想。 在内存有限的单片机上运行嵌入式程序时,我们会压缩数据的空间占用,以时间换空间;但在面向海量用户的分布式服务中,使用更多的空间建立索引,换取更短的查询 阅读全文
posted @ 2023-01-04 12:18 易先讯 阅读(18) 评论(0) 推荐(0)
摘要:你好,我是陶辉。 上一讲我们提到,高频地命中CPU缓存可以提升性能。这一讲我们把关注点从CPU转移到内存,看看如何提升内存分配的效率。 或许有同学会认为,我又不写底层框架,内存分配也依赖虚拟机,并不需要应用开发者了解。如果你也这么认为,我们不妨看看这个例子:在Linux系统中,用Xmx设置JVM的最 阅读全文
posted @ 2023-01-04 12:17 易先讯 阅读(14) 评论(0) 推荐(0)
摘要:你好,我是陶辉。 这是课程的第一讲,我们先从主机最重要的部件CPU开始,聊聊如何通过提升CPU缓存的命中率来优化程序的性能。 任何代码的执行都依赖CPU,通常,使用好CPU是操作系统内核的工作。然而,当我们编写计算密集型的程序时,CPU的执行效率就开始变得至关重要。由于CPU缓存由更快的SRAM构成 阅读全文
posted @ 2023-01-04 12:17 易先讯 阅读(52) 评论(0) 推荐(0)
摘要:你好,我是陶辉。欢迎你和我一起学习“系统性能优化”。 从2004年毕业到现在,无论我在华为、思科、腾讯、阿里巴巴等等哪家公司,我的工作总是与“性能”相伴,从底层、应用层到前端,我一直都很关心系统如何能够服务更多的用户,提供更快的体验。换句话说啊,性能优化最根本的目的,还是要跟上业务的发展脚步。 在我 阅读全文
posted @ 2023-01-04 12:16 易先讯 阅读(25) 评论(0) 推荐(0)
摘要:今天是原理篇的最后一篇。过去50讲,我们一起看了抽象概念上的计算机指令,看了这些指令怎么拆解成一个个简单的电路,以及CPU是怎么通过一个一个的电路组成的。我们还一起看了高速缓存、内存、SSD硬盘和机械硬盘,以及这些组件又是怎么通过总线和CPU连在一起相互通信的。 把计算机这一系列组件组合起来,我们就 阅读全文
posted @ 2023-01-04 12:15 易先讯 阅读(4) 评论(0) 推荐(0)
摘要:讲完校验码之后,你现在应该知道,无论是奇偶校验码,还是CRC这样的循环校验码,都只能告诉我们一个事情,就是你的数据出错了。所以,校验码也被称为检错码(Error Detecting Code)。 不管是校验码,还是检错码,在硬件出错的时候,只能告诉你“我错了”。但是,下一个问题,“错哪儿了”,它是回 阅读全文
posted @ 2023-01-03 10:41 易先讯 阅读(5) 评论(0) 推荐(0)
摘要:2012年的时候,我第一次在工作中,遇到一个因为硬件的不可靠性引发的Bug。正是因为这个Bug,让我开始逐步花很多的时间,去复习回顾整个计算机系统里面的底层知识。 当时,我正在MediaV带领一个20多人的团队,负责公司的广告数据和机器学习算法。其中有一部分工作,就是用Hadoop集群处理所有的数据 阅读全文
posted @ 2023-01-03 10:41 易先讯 阅读(17) 评论(0) 推荐(0)
摘要:过去几年里,整个计算机产业界,都在尝试不停地提升I/O设备的速度。把HDD硬盘换成SSD硬盘,我们仍然觉得不够快;用PCI Express接口的SSD硬盘替代SATA接口的SSD硬盘,我们还是觉得不够快,所以,现在就有了傲腾(Optane)这样的技术。 但是,无论I/O速度如何提升,比起CPU,总还 阅读全文
posted @ 2023-01-03 10:40 易先讯 阅读(24) 评论(0) 推荐(0)
摘要:如果你平时用的是Windows电脑,你会发现,用了SSD的系统盘,就不能用磁盘碎片整理功能。这是因为,一旦主动去运行磁盘碎片整理功能,就会发生一次块的擦除,对应块的寿命就少了一点点。这个SSD的擦除寿命的问题,不仅会影响像磁盘碎片整理这样的功能,其实也很影响我们的日常使用。 我们的操作系统上,并没有 阅读全文
posted @ 2023-01-03 10:40 易先讯 阅读(12) 评论(0) 推荐(0)
摘要:随着3D垂直封装技术和QLC技术的出现,今年的“618”,SSD硬盘的价格进一步大跳水,趁着这个机会,我把自己电脑上的仓库盘,从HDD换成了SSD硬盘。我的个人电脑彻底摆脱了机械硬盘。 随着智能手机的出现,互联网用户在2008年之后开始爆发性增长,大家在网上花的时间也越来越多。这也就意味着,隐藏在精 阅读全文
posted @ 2023-01-03 10:40 易先讯 阅读(11) 评论(0) 推荐(0)
摘要:在1991年,我刚接触计算机的时候,很多计算机还没有硬盘。整个操作系统都安装在5寸或者3.5寸的软盘里。不过,很快大部分计算机都开始用上了直接安装在主板上的机械硬盘。到了今天,更早的软盘早已经被淘汰了。在个人电脑和服务器里,更晚出现的光盘也已经很少用了。 机械硬盘的生命力仍然非常顽强。无论是作为个人 阅读全文
posted @ 2023-01-03 10:39 易先讯 阅读(24) 评论(0) 推荐(0)
摘要:在专栏一开始的时候,我和你说过,在计算机组成原理这门课里面,很多设计的核心思路,都来源于性能。在前面讲解CPU的时候,相信你已经有了切身的感受了。 大部分程序员开发的都是应用系统。在开发应用系统的时候,我们遇到的性能瓶颈大部分都在I/O上。在第36讲讲解局部性原理的时候,我们一起看了通过把内存当作是 阅读全文
posted @ 2023-01-03 10:39 易先讯 阅读(2) 评论(0) 推荐(0)

上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 45 下一页