![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线程模型
文章平均质量分 86
存储线程模型专栏
大隐隐于野
这个作者很懒,什么都没留下…
展开
-
linux性能优化——关于NUMA的配置
此外对新手要注意:pcie上并没有NUMA信息,因为pcie上的信息都是硬件设备,NUMA并不是硬件,而只是一种内存技术,该技术和CPU的支持分不开,所以,用。例如,某一个pcie地址段是和NUMA的Node0绑定的,则该地址段上的设备应绑定Node0。以网卡为例,通过lspci找到了某一张网卡的pcie地址号0000:4b:00.01,bus为4b,小于80,故应绑定Node0。该指令的值会返回所属的Node号,如果返回0,便代表该网卡绑定在Node0上。如果返回的值为0,说明该网卡绑定NUMA正确。原创 2024-02-07 15:41:47 · 798 阅读 · 0 评论 -
Linux中的numactl命令指南
现代处理器采用*非统一内存访问(NUMA)*的方式进行硬件设计。有时我们想控制线程如何被分配到处理器内核上,以避免使用超线程,而是使用硬件线程,或者确保一个任务不会频繁迁移。NUMA调度策略和NUMA内存放置策略。numactl是一个Linux函数,它以指定的NUMA调度或内存放置策略运行进程。它将进程与Linux NUMA超级计算机上的处理器绑定。使用numactl的目的是将进程限制在一个numa池或CPU节点上,而不是特定的CPU核。通过numactl。原创 2024-02-07 15:35:21 · 1733 阅读 · 0 评论 -
Linux中的numactl命令使用详解
现代处理器采用*非统一内存访问(NUMA)*的方式进行硬件设计。有时我们想控制线程如何被分配到处理器内核上,以避免使用超线程,而是使用硬件线程,或者确保一个任务不会频繁迁移。NUMA调度策略和NUMA内存放置策略。numactl是一个Linux函数,它以指定的NUMA调度或内存放置策略运行进程。它将进程与Linux NUMA超级计算机上的处理器绑定。使用numactl的目的是将进程限制在一个numa池或CPU节点上,而不是特定的CPU核。通过numactl。原创 2024-01-16 10:31:52 · 2678 阅读 · 0 评论 -
How epoll works efficiently
【代码】How epoll works efficiently。原创 2023-09-21 10:08:49 · 86 阅读 · 0 评论 -
系统性能调优之绑定cpu
在 CPU 的 NUMA 架构下,对 CPU 核的编号规则,并不是先把一个 CPU Socket 中的所有逻辑核编完,再对下一个 CPU Socket 中的逻辑核编码,而是先给每个 CPU Socket 中每个物理核的第一个逻辑核依次编号,再给每个 CPU Socket 中的物理核的第二个逻辑核依次编号。再往后面就是内存,内存的后面就是硬盘。你可能注意到,三级缓存要比一、二级缓存大许多倍,这是因为当下的 CPU 都是多核心的,每个核心都有自己的一、二级缓存,但三级缓存却是一颗 CPU 上所有核心共享的。原创 2023-08-17 10:35:57 · 956 阅读 · 0 评论 -
Boost Fiber协程库使用详解
在fiber运行的代码可以使其看起来像调用一个普通的阻塞函数,这种调用可以很方便的挂起调用的fiber,从而允许同一个线程上的其他fiber运行。每一个运行的fiber都有一个唯一的fiber::id,通过调用get_id()成员函数,可以获取对应fiber的id。默认情况下,库所提供的fiber同步对象将运行在不同的线程上安全的同步fiber。fiber的控制是合作性的,而不是先发制人:每当一个fiber挂起(或yield)时,fiber管理器会向调度器咨询下一个将运行那个fiber。原创 2023-10-30 19:40:57 · 480 阅读 · 0 评论 -
生产环境使用boost::fiber
boost::fiber是一类用户级线程,也就是纤程。其提供的例子与实际生产环境相距较远,本文将对其进行一定的改造,将其能够投入到生产环境。同时由于纤程是具有传染性的,使用纤程的代码里也全部要用纤程封装,本文将对一些组件进行简单封装。原创 2023-10-30 14:23:34 · 658 阅读 · 0 评论