Articles of 多核

是否值得在Linux上针对nginx或haproxy的多核服务器尝试使用不同的堆分配器

我正在做一些实验来找出RHEL或Centos上haproxy和nginx的每秒请求速率的上限。 我在nginx中的部分设置是以LuaJIT的forms使用embedded式LUA。 我的问题是这样的: 有没有人有任何经验或build议做这些应用程序之后,使用替代堆分配器(如Hoard或Lockless)构buildtesting这些应用程序的有用性。 任何想法感激地收到。 戴夫。

在R中停止nohup并行模拟

我需要取消在R服务器上使用R启动的并行处理模拟。 昨晚我使用ssh连接到服务器,并使用nohup命令从shell启动模拟:nohup R CMD BATCH mysimulation.R mysimulation.R文件使用多核程序包中的mclapply命令来产生R的其他实例以并行运行模拟。 例如,当我在shell中运行top时,会看到十个不同的R运行实例,然后完成模拟运行,然后再次开始继续进行其他模拟复制。 我几乎没有直接使用Linux服务器的经验(我的知识范围是cd,ls和上面提到的nohup命令)。 我search了一下解决scheme,并认为杀死这个过程可能会奏效。 我试过了: 杀-9 mypid(这表示它杀死了进程)。 但是,仿真继续运行。 我可以看到R的实例继续运行,closures和重生。 任何人都可以指点我的资源,或者走过我需要采取的closures这个模拟的具体步骤吗? 谢谢。

为什么我的两个线程不能交错运行?

我今天写了一个pthread代码: #include <pthread.h> #include <stdio.h> pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; void *thread1(void *arg) { while (1) { pthread_mutex_lock(&mutex); sleep(1); printf("thread1…\n"); pthread_mutex_unlock(&mutex); } } void *thread2(void *arg) { while (1) { pthread_mutex_lock(&mutex); sleep(1); printf("thread2…\n"); pthread_mutex_unlock(&mutex); } } int main() { pthread_t tid1, tid2; pthread_create(&tid1, NULL, thread1, NULL); pthread_create(&tid2, NULL, thread2, NULL); pthread_join(tid1, NULL); pthread_join(tid2, NULL); return 0; […]

多核处理器中基于轮询和中断的数据包处理方法

此查询与多核处理器中的数据包处理有关。 数据包处理可以在Linux或纯数据path中进行。 如果数据包处理应用程序在Linux上,那么它是真的,那么它必须是基于中断的数据包处理以获得高性能,但是如果数据包处理是纯数据path(没有Linux),那么应该使用轮询来获得更高的性能? 如果是,为什么/如何?

开发内核以支持多个CPU

我期待进入操作系统内核开发,并认为我的贡献将是扩展SANOS操作系统以支持多核心机器。 我一直在阅读操作系统(Tannenbaum)的书籍,以及研究BSD和Linux如何应对这个挑战,但仍然困扰着一些概念。 当SANOS在多个CPU上运行时,是否需要更复杂的调度algorithm? 我知道,线程对启动的内核具有亲和力是一个好主意,但这是通过调度还是通过更改线程创build的实现来处理的? 有什么需要考虑的,SANOS可以在有数百个内核的机器上运行? 据我所知,BSD和Linux最多只支持最多十几个内核。

如何configuration线程负载平衡?

我需要看到我的multithreading程序的负载平衡特性。 有什么工具可以给我提供信息,比如说这个吗? 我需要一些简单的东西,例如,每个核心都会给我提供信息,但是不是英特尔VTune,而且这样的东西太臃肿了,甚至看起来也很痛苦。

都调用`fprintf(stdout,…)`和`fprintf(stderr,…)`保证与multithreading不交错?

假设我有两个线程打印stderr或stdout东西(相对较长),这两个线程的函数是线程安全的,他们永远不会“交错”字符? 所以,举个例子,如果我有“你好,世界”,我永远不会得到“HHellllo ,, WorldWorld”还是其他什么交错? 这是x86,GCC,Linux> 3.0。

如果Linux在多核CPU上运行,每个内核是否有全局的“当前”?

有些书说 当前指针指的是当前正在执行的用户进程。 在执行系统调用期间,例如打开或读取 ,当前进程是调用该调用的进程。 如果多个进程在一个多核CPU上同时调用一个系统调用(相同或不同的系统调用),每个内核上都有一个调用? 内核是否需要多个“当前”全局variables?

有关Unix / Linux内核编程的问题

我想了解可扩展多处理器(smps)的linux / Unix内核编程。 我发现这本书的UNIX(R)系统的现代架构http://www.amazon.com/UNIX-Systems-Modern-Architectures-Multiprocessing/dp/0201633388/ref=pd_rhf_p_t_3 。 自1994年发布以来,还有没有其他的优质资源或更好的书籍?非常感谢。 感谢和问候, 像老鼠。

CPU亲和力的优点和缺点

假设我有一个运行在多处理器系统(比如8个内核)上的multithreading应用程序(比如〜40个线程),而Linux作为操作系统,其中不同的线程本质上是由内核调度的LWP(轻量级进程)。 使用CPU亲和力有什么好处/缺点? CPU亲和力是否将通过将线程本地化到核心子集从而最大限度地减lesscaching共享/漏洞来提供帮助?