Take the 2-minute tour ×

how many processors can GNU/Linux support?
and how much of memory can GNU/Linux support?
and if you can provide me with the reference

share|improve this question

migrated from stackoverflow.com Aug 6 '10 at 17:27

This question came from our site for professional and enthusiast programmers.

Impressive baseline: htop.sourceforge.net/128.png ;-) –  mbq Aug 6 '10 at 18:25

4 Answers 4

Gnu is userland so has no relationship with the number of CPUs. CPU and memory limits depends on the kernel and the architecture.

I'm assuming you are asking about the x86 architecture running on 64 bit mode.

The maximum number of CPUs (more precisely cores) supported by the Linux kernel is a parameter set at compilation time. Common values are 8 (default smp), 32 for bigger smp hardware. The maximum setting is 512, although you'll have hard time to find out actual x86 hardware with that much number of CPUs. The very maximum (experimental) is 4096 but is AFAIK only used for code testing purposes.

About memory, the Linux kernel can support about 64 TB of RAM and each process about 128 TB of virtual memory. Here too, these limits are large enough for not being reachable by existing hardware.

share|improve this answer

As much as money can buy: see top500 and particularly top 500 by OS or, if you must, same as a piechart.

share|improve this answer
I think that the question was about in a single machine. The top500 machines are clusters, and as such are many individual computers hooked up through a fast network (20 GB/s is not uncommon) connection. –  KeithB Aug 6 '10 at 17:33
Some of the clusters are "close coupled" which is to say that the ethernet is part of the system bus. There are a lot of boxes, but they are all one "machine". Others, of course, are loosely coupled. –  dmckee Aug 6 '10 at 18:19
@dmckee: This is getting off topic a bit, but you are sort of right. Most high-end clusters don't use ethernet, but infiniband. But there is something I wasn't aware had been brought to Linux, which is a singe system image (e.g., openssi.org/cgi-bin/view?page=openssi.html). This means that a group of machines appear to be running the same kernel, and processes are seamlessly migrated from machine to machine. If you do an ls, it shows the processes for all of the machines. The top500 machines I've used haven't done this, but I'm sure some do. –  KeithB Aug 7 '10 at 0:14
@Keith I'm out of date, but Beowolf did that back in the day. And it used ethernet. So, call me so 20th century. –  dmckee Aug 7 '10 at 1:40

I think you need to be more specific for your question. What distribution? Some of these answers will depend on the kernel you use. If you want specific numbers, you can match this against a specific distribution.

Number of CPUs can have two answers - what is the maximum number of CPUs the OS can use, period. And what can it use efficiently. Sometimes these can be very different.

As far as memory, you'll get kernel limitations, but also hardware ones. Certain motherboards/chipsets will have practical limits, either because of addressing, or because of limited number of RAM slots.

share|improve this answer

I don't know the specifics, but in general you will hit hardware and/or monetary limits before you hit OS limits. Basically, if you have to ask its more than you can use.

share|improve this answer

Your Answer

