加入收藏 | 设为首页 | 会员中心 | 我要投稿 潍坊站长网 (https://www.0536zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

打破专有系统的桎梏

发布时间:2021-02-21 17:15:02 所属栏目:评论 来源:互联网
导读:eller 可以说在「芯片设计」领域享负盛名,他曾在苹果、特斯拉和 AMD 等多家公司担任高管。 20多年的工作经历中,Keller 在 x86 和 ARM 架构芯片领域中取得了卓越的成就。 一次又一次创造了被认为是芯片行业中,至关重要的领先部件: 曾经领导苹果公司开发 A

eller 可以说在「芯片设计」领域享负盛名,他曾在苹果、特斯拉和 AMD 等多家公司担任高管。

20多年的工作经历中,Keller 在 x86 和 ARM 架构芯片领域中取得了卓越的成就。

一次又一次创造了被认为是芯片行业中,至关重要的领先部件:

  • 曾经领导苹果公司开发 A4 和 A5 芯片;
  • 也是 AMD K8和Zen芯片的设计师;
  • 更是特斯拉自动驾驶芯片的打造者。

虽然英特尔在声明中,表达 Keller 的离职原因比较隐晦,但在罗森布拉特证券(Rosenblatt Securities)分析师Hans Mosesmann,在给投资者写的一份报告中,似乎有了些线索:

Keller 的离职是一件大事,这表明,他无论在英特尔实施什么措施,似乎都没有起到作用。

或者说,英特尔的老前辈们不想实施。

Keller 的离职,会对英特尔造成多大影响?

自从 Keller 入职以来,英特尔便依赖于他深厚的技术专长,来设计下一代处理器,例如被认为会进一步推动硅芯片缩小制程的3D堆叠技术。

并且,在 Keller 辞职的前一天,英特尔还发布了新的 Lakefield 混合处理器,其中包括他参与设计的低功耗Tremont处理器。

此前,他还曾参与英特尔10纳米处理器的研发。


 

当线程池中所有的线程都处于busy状态,那么新的task请求将会加入到等待队列。我们可以在thread_pool中使用max_queue参数来指定队列的大小,默认队列大小为65536,当队列已满后续的请求将会抛出error。

END

nginx官方宣称使用多线程模式,在aio读取文件场景下,性能有9倍的提升,但我还是对这个测试具有一定怀疑态度。

多线程 + aio在一定程度的确可以提高文件IO的读取性能,但是对于大文件而言,这似乎并没有想象的那么优秀。这受制于linux平台底层的本身特性,除非nginx自己对文件cache做了额外的操作。

到目前为止,xjjdog仍有以下建议(供参考):

  • 对于小文件的静态代理,我们应该开启sendfile,这对性能的提升是显著的。
  • 对于大文件读取(低频),我们可以尝试开启aio、directio,在提升并发能力的前提下,关注request的实际响应效率;既然官方推荐这么用,我们可以报以尝试的态度。
  • 对于高频大文件读取,aio、directio的性能或许提升并不显著,但应该不会降低性能。



aio

谈到aio模型,其实语义也基本相同,就是异步文件IO,nginx默认关闭此特性,它需要在高版本的linux平台上才支持(2.6.22+)。

在linux上,directio只能读取基于512字节边界对齐的blocks,文件结束的那些未对齐的block将使用阻塞模式读取。

同样,如果文件在开头没有对齐,整个文件都将阻塞式读取。这里所谓的对齐,就是文件数据在内存页中的cache情况。

当aio和sendfile都开启时,将会对那些size大于directio设定值的文件使用aio机制:即当小于directio设定值的文件将直接使用sendfile(aio不参与)。

aio,简单而言,就是使用多线程异步模式读取较大的文件,以提高IO效率,但是事实上可能并没有任何提高。因为大文件的读取,并不能使用cache、而且本身也是耗时的,即使是多线程,对于request的等待时间也是无法预估的,特别是并发请求较高的时候。但是aio能够提高IO的并发能力,这个是确定的。

默认情况下,多线程模式是关闭的,我们需要通过--with-threads配置来开启,此特性尽在支持epoll、kqueue的平台上兼容。对于线程池的设置,我们可以通过thread_pool来声明,并在aio指令中指定。

我们的配置文件近一步丰富了一些。




(编辑:潍坊站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读