Nhân Linux có thể xử lý bao nhiêu lõi?


13

Tôi quan tâm đến các giới hạn lý thuyết, có lẽ với các ví dụ về các hệ thống có số lượng lớn CPU.


1
Có bao nhiêu nó có thể xử lý? hoặc có bao nhiêu nó có thể xử lý trước khi bạn mất một số lợi ích? còn nhân gì? Tôi nghi ngờ rằng câu trả lời này thay đổi phần nào cho một máy tính được vá để chạy siêu máy tính. Tôi dường như nhớ lại việc đọc về một trường hợp duy nhất sử dụng bộ xử lý 4096 ...
xenoterracide

cài đặt bản vá nào, bản vá thông thường không thể xử lý 4096 bộ xử lý nhưng linux đã được vá để thực hiện. (IIRC một số câu trả lời dường như cho thấy nó có thể)
xenoterracide

@xeno Tôi nghĩ rằng thậm chí có một bản vá xử lý 4096 bộ xử lý là thứ nên được đề cập trong Câu trả lời.
tshepang

Tôi không nhớ nhiều hơn thế, nếu không tôi sẽ trả lời, tôi cũng đạt được hiệu suất của cô ấy vượt qua 16? các lõi bị hạn chế ... và một số phần nhất định của kernel cần viết lại đã bắt đầu. nhưng thực sự tôi không có bất kỳ trích dẫn nào và đó không phải là 100% đó là lý do tại sao tôi không trả lời.
xenoterracide

Câu trả lời:


16

Ít nhất 2048 trong thực tế. Lấy ví dụ cụ thể, SGI bán hệ thống UV của mình , có thể sử dụng 256 ổ cắm (2.048 lõi) và 16TB bộ nhớ dùng chung, tất cả đều chạy trong một hạt nhân. Tôi biết rằng có ít nhất một vài hệ thống đã được bán trong cấu hình này.

Theo SGI:

Altix UV chạy Linux hoàn toàn không thay đổi, bao gồm các bản phân phối tiêu chuẩn từ cả Novell và Red Hat.


10

đây là những gì Launchpad nói về Ubuntu, vì vậy tôi đoán nó áp dụng cho những người khác:

1.Intel x86:
Maximum CPUs: 32 (including logical CPUs)
Maximum memory: 64GB
Maximum filesize: 8TB
Maximum filesystem size (ext3) 16TB
Maximum per-process virtual address space: 4GB

2.AMD64/EM64T:
Maximum CPUs: 64
Maximum memory: 128GB
Maximum filesize: 8TB
Maximum filesystem size (ext3): 16TB
Maximum per-process virtual address space: N/A

These are standard max limitations whereas Linux cluster systems can scale up to 1024 CPU's.

Đó là 32 hoặc 64 CPU cho x86 và x86_64 tương ứng.

Redhat nói như vậy, nhưng trong một bảng thân thiện với quản lý . Redhat EL6 có thể làm 32 cho lõi x86, hoặc 128 hoặc 4096 CPU cho x86_64.


4
arch / x86 / Kconfig cho biết những CONFIG_NR_CPUSgiới hạn này có thể được nâng lên nếu CONFIG_MAXSMPđược bật.
ephemient

6

Nhân Linux x86_64 có thể xử lý tối đa 4096 luồng Bộ xử lý trong một ảnh hệ thống. Điều này có nghĩa là với siêu phân luồng được kích hoạt, số lượng lõi xử lý tối đa là 2048. Có những máy tính có hơn 2048 lõi xử lý; nhưng chúng chạy như các cụm trong đó một số hạt nhân Linux hợp tác, được kết nối với một kết nối tốc độ cao, điển hình là vải Infiniband.

từ hạt nhân mới nhất 3.13, trong ~ / arch / x86 / Kconfig:

cấu hình NR_CPUS

    ---help---
      This allows you to specify the maximum number of CPUs which this
      kernel will support.  If CPUMASK_OFFSTACK is enabled, the maximum
      supported value is 4096, otherwise the maximum value is 512.  The
      minimum value which makes sense is 2.

      This is purely to save memory - each supported CPU adds
      approximately eight kilobytes to the kernel image.

Cập nhật: Trên các nhân mới hơn, đây là kiến ​​trúc cụ thể - ví dụ: trên 4.15 x86_64 cho phép bạn đặt NR_CPUS thành 8192 trong trường hợp phù hợp trong khi cánh tay 32 bit dừng ở 32 .


2

Em này chạy 10.368!


Tôi biết đây là một bài viết cũ, nhưng bạn đang liên kết với một máy tính cụm. Câu hỏi là về việc chạy một cá thể kernel.
frodeborli

1

Chủ đề là chủ quan cho mô hình đa nhiệm và sơ đồ quản lý luồng. Các hệ thống dựa trên intel được sử dụng trong linux nếu tôi nhớ đúng. Ý tưởng là nó có khả năng 8192 luồng ở kích thước tối đa. Điều này giả định rằng hệ thống đang sử dụng gdt để quản lý các luồng. Trên máy 32 bit, chuyển đổi tác vụ được quản lý và trên máy 32 và 64 bit, các vectơ ngắt cần có các mục gdt. Không chắc làm thế nào cánh tay làm điều đó nhưng khớp nối phải đạt được. Các khái niệm chuyển đổi tác vụ lặp lại GDT trong các mô hình tác vụ.

Nếu bạn thoát ra khỏi lược đồ gdt, bạn có thể đạt được những gì bạn có bộ nhớ khi bạn có, cho mỗi luồng, khung ngăn xếp trang, cơ sở mã trang cho luồng và trang của không gian heap. Bạn không thể cho rằng bạn có một trang mã hoặc heap, đó là các biến ngẫu nhiên. Nói chung, có hai khung ngăn xếp cho mỗi luồng, một khung được duy trì bởi luồng và một khung được duy trì bởi kernel linux. Bạn thêm các khái niệm bộ nhớ ảo về không gian hoán đổi và mô hình bị thổi bay ra khỏi nước nhưng đó là về mức độ ưu tiên của luồng ..


0

Cũng thế:

Nếu bạn đang sử dụng Linux với vai trò Kiểm soát UV SGI và bạn đang sử dụng Bladecenters với Hạt nhân 4.15 của riêng mình, bạn có thể sử dụng vào Khoảnh khắc:

Giá đỡ lưỡi 4096. 1 Giá đỡ sử dụng 1024 lõi x 4096 lõi. Cấu hình này sẽ là thời điểm Core cao nhất sử dụng trong Linux. Bạn có thể kiểm soát tất cả các lõi dưới Red Hat.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.