numa

How do I know if my server has NUMA?

不想你离开。 提交于 2020-01-22 05:21:06
问题 Hopping from Java Garbage Collection, I came across JVM settings for NUMA. Curiously I wanted to check if my CentOS server has NUMA capabilities or not. Is there a *ix command or utility that could grab this info? 回答1: I'm no expert here, but here's something: Box 1, no NUMA: ~$ dmesg | grep -i numa [ 0.000000] No NUMA configuration found Box 2, some NUMA: ~$ dmesg | grep -i numa [ 0.000000] NUMA: Initialized distance table, cnt=8 [ 0.000000] NUMA: Node 4 [0,80000000) + [100000000,280000000)

Allocating a Thread's Stack on a specific NUMA memory

狂风中的少年 提交于 2020-01-02 21:51:53
问题 I would like to know if there is a way to create the stack of a thread on a specific NUMA node. I have written this code but i'm not sure if it does the trick or not. pthread_t thread1; int main(int argc, char**argv) { pthread_attr_t attr; pthread_attr_init(&attr); char** stackarray; int numanode = 1; stackarray = (char**) numa_alloc_onnode(sizeof(char*), numanode); // considering that the newly // created thread will be running on a core on node1 pthread_attr_setstack(&attr, stackarray[0],

Why are my Opteron cores running at only 75% capacity each? (25% CPU idle) [closed]

冷暖自知 提交于 2020-01-02 05:27:10
问题 Closed. This question is off-topic. It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow. Closed 7 years ago . We've just taken delivery of a powerful 32-core AMD Opteron server with 128Gb. We have 2 x 6272 CPU's with 16 cores each. We are running a big long-running java task on 30 threads. We have the NUMA optimisations for Linux and java turned on. Our Java threads are mainly using objects that are private to that

How to control memory allocation of a third party library?

流过昼夜 提交于 2019-12-24 10:01:22
问题 I am developing a real-time application on a server with two NUMA nodes. Below is a simplified version of the system diagram (the OS is Ubuntu14.04): .-------------. .-------------. | Device 0 | | Device 1 | .-------------. .-------------. || || || || .-------------. .-------------. | PCIE slot 0 | | PCIE slot 1 | .-------------. .-------------. || || || || .-------------. QPI link .-------------. | CPU 0 |<-------->| CPU 1 | .-------------. .-------------. || || || || .-------------. .------

How to implement interleaved page allocation in a user-mode NUMA-aware memory allocator?

家住魔仙堡 提交于 2019-12-24 04:34:10
问题 I am building a user-mode NUMA-aware memory allocator for linux. The allocator during its initialization grabs a large chunk of memory, one chunk per NUMA node. After this, memory pages requested by the user are met by giving as many memory pages from the large chunk pool. If the user asks for n pages, it is easy to give n pages from a particular chunk. But now I want to implement an interleaved allocation policy, where the user gets one page from each chunk, round-robin up to n pages. This

Determine NUMA layout via latency/performance measurements

こ雲淡風輕ζ 提交于 2019-12-22 08:14:25
问题 Recently I have been observing performance effects in memory-intensive workloads I was unable to explain. Trying to get to the bottom of this I started running several microbenchmarks in order to determine common performance parameters like cache line size and L1/L2/L3 cache size (I knew them already, I just wanted to see if my measurements reflected the actual values). For the cache line test my code roughly looks as follows (Linux C, but the concept is similiar to Windows etc. of course):

NUMA-aware named shared memory for Linux

家住魔仙堡 提交于 2019-12-22 06:29:11
问题 The Windows API offers the CreateFileMappingNuma function (http://msdn.microsoft.com/en-us/library/windows/desktop/aa366539(v=vs.85).aspx) to create a named shared memory space on a specific NUMA node. So far, I have not found an equivalent function for Linux. My current approach looks like this: Allocate named shared memory (using shm_open(...)) Determine current NUMA node (using numa_move_pages(...)) Move pages to target Node (using numa_move_pages(...) again) Does anyone know a better

NUMA-aware named shared memory for Linux

点点圈 提交于 2019-12-22 06:29:07
问题 The Windows API offers the CreateFileMappingNuma function (http://msdn.microsoft.com/en-us/library/windows/desktop/aa366539(v=vs.85).aspx) to create a named shared memory space on a specific NUMA node. So far, I have not found an equivalent function for Linux. My current approach looks like this: Allocate named shared memory (using shm_open(...)) Determine current NUMA node (using numa_move_pages(...)) Move pages to target Node (using numa_move_pages(...) again) Does anyone know a better

Is there any example of using mbind in C/C++ code?

穿精又带淫゛_ 提交于 2019-12-21 20:55:04
问题 I am trying to use mbind() in my C++ code in order to rearrange virtual pages across 4 NUMA domains, unfortunately I am new to this function: long mbind(void *addr, unsigned long len, int mode, const unsigned long *nodemask, unsigned long maxnode, unsigned flags); Currently, I have something like this: mbind(0x0,4611686018424767488,MPOL_BIND,nodemask,maxnode,MPOL_MF_MOVE); From the specs it's still unclear to me what to put and how to put for nodemask and maxnode . 回答1: nodemask is a pointer

How does NUMA architecture affect the performance of ActivePivot?

☆樱花仙子☆ 提交于 2019-12-20 10:56:19
问题 We are migrating an ActivePivot application to a new server (4 sockets Intel Xeon, 512GB of memory). After deploying we launched our application benchmark (that's a mix of large OLAP queries concurrent to real-time transactions). The measured performance is almost twice slower than on our previous server, that has similar processors but twice less cores and twice less memory. We have investigated the differences between the two servers, and it appears the big one has a NUMA architecture (non