bạn không nhất thiết phải tắt hoặc vô hiệu hóa lõi.
bạn sẽ sử dụng cpusets và tasket
http://man7.org/linux/man-pages/man7/cpuset.7.html
Một cpuset định nghĩa một danh sách các CPU và các nút bộ nhớ ...
Hệ thống tập tin cpuset là một giao diện hệ thống tập tin giả cho cơ chế cpuset kernel, được sử dụng để kiểm soát vị trí bộ xử lý và vị trí bộ nhớ của các quá trình. Nó thường được gắn tại / dev / cpuset.
Trên các hệ thống có nhân được biên dịch với sự hỗ trợ tích hợp cho cpuset, tất cả các quy trình được gắn vào một cpuset và cpuset luôn có mặt. Nếu một hệ thống hỗ trợ cpuset, thì nó sẽ có cpuset đầu vào trong tệp / Proc / filesystems. Bằng cách gắn hệ thống tập tin cpuset (xem phần VÍ DỤ bên dưới), quản trị viên có thể định cấu hình các cpuset trên hệ thống để điều khiển bộ xử lý và vị trí bộ nhớ của các quy trình trên hệ thống đó. Theo mặc định, nếu cấu hình cpuset trên một hệ thống không được sửa đổi hoặc nếu hệ thống tập tin cpuset thậm chí không được gắn kết, thì cơ chế cpuset, mặc dù hiện tại, không có ảnh hưởng đến hành vi của hệ thống.
Các CPU của một hệ thống bao gồm tất cả các đơn vị xử lý logic mà quá trình có thể thực thi, bao gồm, nếu có, nhiều lõi xử lý trong một gói và Siêu chủ đề trong lõi bộ xử lý. Các nút bộ nhớ bao gồm tất cả các ngân hàng riêng biệt của bộ nhớ chính; các hệ thống nhỏ và SMP thường chỉ có một nút bộ nhớ chứa tất cả bộ nhớ chính của hệ thống, trong khi các hệ thống NUMA (truy cập bộ nhớ không đồng nhất) có nhiều nút bộ nhớ.
Nói tóm lại, nếu bạn có 1 cpu có 6 lõi, bạn sẽ cấu hình các cpuset và khởi chạy quy trình của bạn trong một cpuset được cấu hình trên chỉ một lõi, ví dụ như lõi số 3 chẳng hạn. Nếu đó là một quy trình song song thì tất cả sẽ bị giới hạn trong một lõi đó nếu bạn khởi chạy 4 quy trình trong một cpuset nhất định chỉ có một lõi được xác định, thì mỗi quy trình trong 4 quy trình sẽ nhận được mức sử dụng cpu 25% trên lõi số 3.
Dựa vào đó, điều thường xảy ra là một cpuset được cấu hình sao cho
- trong một hệ thống lõi hơn 200, ví dụ, cpusetA là lõi 0..60 ở bất cứ nơi nào có thể được đặt, cpusetB là lõi 61,70; cpusetC là lõi 71..80; và v.v. tuy nhiên một quản trị viên / kiến trúc sư chọn cấu hình.
- cpusetA được phân bổ cho một số người dùng nhất định và / hoặc các chương trình phần mềm cụ thể; cpusetB được phân bổ cho người dùng / chương trình khác nhau; và như thế.
- một người dùng khởi chạy một công việc (quy trình) sẽ yêu cầu N lõi ... trong một cpuset nhất định, và bây giờ nhiều quy trình (song song) đó được giới hạn trong cpuset đã cho đó. Và đối với những N song song bị giới hạn trong một cpuset nhất định, mỗi quá trình đó sẽ / nên sử dụng ái lực của bộ xử lý hoặc ái lực cpu để các tiến trình song song đó không bị xung quanh các lõi khác nhau trong cpuset.
cũng: https://linux.die.net/man/1/t tasket
maxcpus=1
commedge ở đâu? Bạn đã đặt chuỗi đó vàogrub.cfg
như một tùy chọn khởi động? (Vui lòng cập nhật câu hỏi của bạn thay vì trả lời trong các bình luận).