linux服务器怎么降低内核cpu进程,获知Linux的进程运行在哪个CPU内核上的当你在多核NUMA处理器上运行需要较高性能的HPC(高性能计算)程序或非常消耗网络资源的程序时。
CPU/memory的亲和力是限度其发挥最大性能的重要因素之一。
在同一NUMA节点上调度最相关的进程可以减少缓慢的远程内存访问。
像英特尔SandyBridge处理器,该处理器有一个集成的PCIe控制器,你可以在同一NUMA节点上调度网络I/O负载(如网卡)来突破PCI到CPU亲和力限制。
作为性能优化和故障排除的一部分,你可能想知道特定的进程被调度到哪个CPU内核(或NUMA节点)上运行。
这里有几种方法可以找出哪个CPU内核被调度来运行给定的Linux进程或线程。
方法一如果一个进程使用taskset命令明确的被固定(pinned)到CPU的特定内核上,你可以使用taskset命令找出被固定的CPU内核。
复制代码代码如下:$taskset-c-p。
例如,如果你对PID5357这个进程有兴趣:复制代码代码如下:taskset-c-p5357。
pid5357'scurrentaffinitylist:5输出显示这个过程被固定在CPU内核5上。
但是,如果你没有明确固定进程到任何CPU内核,你会得到类似下面的亲和力列表。
pid5357'scurrentaffinitylist:0-11输出表明该进程可能会被安排在从0到11中的任何一个CPU内核。
在这种情况下,taskset不能识别该进程当前被分配给哪个CPU内核,你应该使用如下所述的方法。
CPU,被称为中央处理器,那么一定就是处理各种数据 *** 作的,那么,CPU处理那么庞大的数据,采用了哪些技术呢我带你了解CPU的处理技术。
多线程
同时多线程Simultaneous Multithreading,简称SMT。SMT可通过复制处理器上的结构状态,让同一个处理器上的多个线程同步执行并共享处理器的执行资源,可最大限度地实现宽发射、乱序的超标量处理,提高处理器运算部件的利用率,缓和由于数据相关或Cache未命中带来的访问内存延时。当没有多个线程可用时,SMT处理器几乎和传统的宽发射超标量处理器一样。SMT最具吸引力的是只需小规模改变处理器核心的设计,几乎不用增加额外的成本就可以显著地提升效能。多线程技术则可以为高速的运算核心准备更多的待处理数据,减少运算核心的闲置时间。这对于桌面低端系统来说无疑十分具有吸引力。Intel从306GHz Pentium 4开始,部分处理器将支持SMT技术。
多核心
多核心,也指单芯片多处理器(Chip Multiprocessors,简称CMP)。CMP是由美国斯坦福大学提出的,其思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。这种依靠多个CPU同时并行地运行程序是实现超高速计算的一个重要方向,称为并行处理。与CMP比较,SMT处理器结构的灵活性比较突出。但是,当半导体工艺进入018微米以后,线延时已经超过了门延迟,要求微处理器的设计通过划分许多规模更小、局部性更好的基本单元结构来进行。相比之下,由于CMP结构已经被划分成多个处理器核来设计,每个核都比较简单,有利于优化设计,因此更有发展前途。IBM 的Power 4芯片和Sun的MAJC5200芯片都采用了CMP结构。多核处理器可以在处理器内部共享缓存,提高缓存利用率,同时简化多处理器系统设计的复杂度。但这并不是说明,核心越多,性能越高,比如说16核的CPU就没有8核的CPU运算速度快,因为核心太多,而不能合理进行分配,所以导致运算速度减慢。在买电脑时请酌情选择。2005年下半年,Intel和AMD的新型处理器也将融入CMP结构。新安腾处理器开发代码为Montecito,采用双核心设计,拥有最少18MB片内缓存,采取90nm工艺制造。它的每个单独的核心都拥有独立的L1,L2和L3 cache,包含大约10亿支晶体管。
SMP
SMP(Symmetric Multi-Processing),对称多处理结构的简称,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。在这种技术的支持下,一个服务器系统可以同时运行多个处理器,并共享内存和其他的主机资源。像双至强,也就是所说的二路,这是在对称处理器系统中最常见的一种(至强MP可以支持到四路,AMD Opteron可以支持1-8路)。也有少数是16路的。但是一般来讲,SMP结构的机器可扩展性较差,很难做到100个以上多处理器,常规的一般是8个到16个,不过这对于多数的用户来说已经够用了。在高性能服务器和工作站级主板架构中最为常见,像UNIX服务器可支持最多256个CPU的系统。
构建一套SMP系统的必要条件是:支持SMP的硬件包括主板和CPU;支持SMP的系统平台,再就是支持SMP的应用软件。为了能够使得SMP系统发挥高效的性能, *** 作系统必须支持SMP系统,如WINNT、LINUX、以及UNIX等等32位 *** 作系统。即能够进行多任务和多线程处理。多任务是指 *** 作系统能够在同一时间让不同的CPU完成不同的任务;多线程是指 *** 作系统能够使得不同的CPU并行的完成同一个任务。
要组建SMP系统,对所选的CPU有很高的要求,首先、CPU内部必须内置APIC(Advanced Programmable Interrupt Controllers)单元。Intel 多处理规范的核心就是高级可编程中断控制器(Advanced Programmable Interrupt Controllers–APICs)的使用;再次,相同的产品型号,同样类型的CPU核心,完全相同的运行频率;最后,尽可能保持相同的产品序列编号,因为两个生产批次的CPU作为双处理器运行的时候,有可能会发生一颗CPU负担过高,而另一颗负担很少的情况,无法发挥最大性能,更糟糕的是可能导致死机。
NUMA技术
NUMA即非一致访问分布共享存储技术,它是由若干通过高速专用网络连接起来的独立节点构成的系统,各个节点可以是单个的CPU或是SMP系统。在NUMA中,Cache 的一致性有多种解决方案,一般采用硬件技术实现对cache的一致性维护,通常需要 *** 作系统针对NUMA访存不一致的特性(本地内存和远端内存访存延迟和带宽的不同)进行特殊优化以提高效率,或采用特殊软件编程方法提高效率。NUMA系统的例子。这里有3个SMP模块用高速专用网络联起来,组成一个节点,每个节点可以有12个CPU。像Sequent的系统最多可以达到64个CPU甚至256个CPU。显然,这是在SMP的基础上,再用NUMA的技术加以扩展,是这两种技术的结合。
乱序执行
乱序执行(out-of-orderexecution),是指CPU允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。这样将根据个电路单元的状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路单元执行,在这期间不按规定顺序执行指令,然后由重新排列单元将各执行单元结果按指令顺序重新排列。采用乱序执行技术的目的是为了使CPU内部电路满负荷运转并相应提高了CPU的运行程序的速度。
分枝技术
(branch)指令进行运算时需要等待结果,一般无条件分枝只需要按指令顺序执行,而条件分枝必须根据处理后的结果,再决定是否按原先顺序进行。
控制器
许多应用程序拥有更为复杂的读取模式(几乎是随机地,特别是当cache hit不可预测的时候),并且没有有效地利用带宽。典型的这类应用程序就是业务处理软件,即使拥有如乱序执行(out of order execution)这样的CPU特性,也会受内存延迟的限制。这样CPU必须得等到运算所需数据被除数装载完成才能执行指令(无论这些数据来自CPUcache还是主内存系统)。当前低段系统的内存延迟大约是120-150ns,而CPU速度则达到了4GHz以上,一次单独的内存请求可能会浪费200-300次CPU循环。即使在缓存命中率(cache hit rate)达到999%的情况下,CPU也可能会花50%的时间来等待内存请求的结束-比如因为内存延迟的缘故。
在处理器内部整合内存控制器,使得北桥芯片将变得不那么重要,改变了处理器访问主存的方式,有助于提高带宽、降低内存延时和提升处理器性制造工艺:Intel的I5可以达到28纳米,在将来的CPU制造工艺可以达到22纳米。
拓扑,并了解应用程序是如何工作的,使得能够迅速排除服务器问题。需要有扎实的数据中心 *** 作知识,并拷问自己几个重要的问题:每个应用程序涉及多少台服务器?基本的网络设置是什么?当前是什么基础设施?这些问题很有价值。例如,如果有两台应用服务器供客户端通过循环DNS访问,同时一半用户反馈有问题。从一开始就知道一半的用户连接到各自的服务器,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)