Có thể vô hiệu hóa CPU (không phải lõi)?


10

Có thể vô hiệu hóa CPU, không phải là lõi? Tôi muốn làm một bài kiểm tra để xác minh xem hiệu suất có thể tạo ra sự khác biệt lớn hay không.

Tôi đang sử dụng Ubuntu 10.10.

Câu trả lời:


10

Bên cạnh việc làm điều này trong BIOS grub của bạn có một tùy chọn được gọi maxcpus.

Bạn có thể chỉnh sửa tùy chọn này khi chọn tùy chọn khởi động grub bằng cách thêm maxcpus=1vào các tham số. Hình ảnh grub ngẫu nhiên:

nhập mô tả hình ảnh ở đây

Chọn 'e' và bạn nhận được một dòng lệnh nơi bạn có thể thêm tùy chọn.

Bạn cũng có thể tạo tùy chọn khởi động vĩnh viễn trong grub bằng cách tạo một bản sao của tùy chọn khởi động hiện tại của bạn và thêm maxcpus=1vào các tham số khởi động. Bạn có thể đặt tên này là 'Ubuntu, kernel 2.5.12-9-386 (1 cpu)' và có nó trong số các tùy chọn khởi động khác như hình ảnh hiển thị.

Bạn có thể xác minh chạy trên 1 cpu bằng cách phát hành:

cat /proc/cpuinfo | grep processor cái này sẽ hiển thị cái gì đó như thế này:

bộ xử lý: 0
bộ xử lý: 1

Và dòng thứ 2 sẽ biến mất sau khi khởi động với 1 CPU.


1
Câu hỏi này cũng sẽ làm cho một trò đùa thực tế rất có ý nghĩa! : D
Alvar

Điều gì xảy ra nếu bạn đặt maxcpus = 0? : P
crazy2be

@Rinzwind Tôi đã làm chính xác những gì bạn nói, nhưng kết quả có vẻ kỳ lạ, tôi đã nhận được 12 thông tin bộ xử lý trước khi thêm "maxcpus = 1" vào các tham số khi thực hiện grepping, nhưng tôi chỉ nhận được 1 thông tin bộ xử lý sau khi sửa đổi, có vẻ như chỉ có một lõi trong tất cả 12 lõi được kích hoạt. Lưu ý: Máy tính của tôi có hai CPU sáu lõi.
LeoYuan

@ crazy2be đoán: bộ xử lý thứ 1 được gọi là 0 nên cuối cùng bạn sử dụng bộ xử lý nào? : D
Rinzwind

@ LeoYuan88 bạn có thể chỉnh sửa đầu ra của cat / Proc / cpuinfo | bộ xử lý grep trước và sau khi bạn khởi động với maxcpus = 1?
Rinzwind

7

Bạn có thể tự động vô hiệu hóa CPU thông qua /sys/devices/system/cpu/cpuN/online, ví dụ để vô hiệu hóa CPU 1, sử dụng:

echo 0 | sudo tee /sys/devices/system/cpu/cpu1/online

và để kích hoạt lại, sử dụng:

echo 1 | sudo tee /sys/devices/system/cpu/cpu1/online

Điều này dường như vô hiệu hóa một lcore, không phải CPU. Tôi có một trong những thư mục này cho mỗi lõi logic trên hệ thống của mình.
sudo

1

Bạn luôn có thể rút CPU ra khỏi ổ cắm của nó. Đó là sức mạnh vũ phu, nhưng bạn được đảm bảo sẽ có được bài kiểm tra mà bạn muốn và bạn không phải lo lắng nếu kernel / BIOS / bất kỳ công tắc nào thực sự làm những gì bạn hy vọng nó đang làm.

Công ty của tôi có cài đặt lớn các trang trại máy chủ ở nhiều địa điểm khác nhau trên khắp thế giới. Trong phòng thí nghiệm của chúng tôi đôi khi chúng tôi sẽ loại bỏ CPU khỏi ổ cắm chỉ để thử nghiệm như vậy.

Có một biến thể thú vị trong bài kiểm tra này mà bạn có thể thực hiện với các hệ thống NUMA nhiều CPU . Trên các loại bo mạch chủ đó, bạn có thể loại bỏ tất cả các DIMM bộ nhớ được điều khiển bởi một CPU vật lý. Hệ thống vẫn sẽ khởi động tốt và sau đó bạn có thể chạy thử nghiệm với ứng dụng của mình được ghim vào các lõi khác nhau cho phép bạn đo lường mức độ ảnh hưởng của bộ nhớ "cục bộ" hoặc "từ xa".


Xin lỗi, tôi vẫn không biết cách rút CPU khỏi ổ cắm của nó, bạn có thể chỉ cho tôi cách thực hiện công việc không?
LeoYuan

0

Bạn có muốn xem hiệu suất của một ứng dụng đa luồng cùng với số lượng lõi không? Nếu đó là trường hợp, bạn có thể sử dụng tiện ích tasket. Tôi đoán rằng bạn có một máy NUMA. Bạn có thể cài đặt tiện ích numactl và bằng cách sử dụng nó, bạn có thể tìm thấy lõi nào tương ứng với CPU nào. Ví dụ: máy của bạn có hai CPUS lõi tứ (chip). Bằng cách sử dụng tiện ích tasket, bạn có thể tạo các lõi của một CPU thành một bộ và phân bổ chúng cho ứng dụng của bạn. Sau đó, ứng dụng của bạn chỉ sử dụng một CPU / Chip (bốn lõi). Xin hãy để tôi biết nếu bạn cần nhiều thông tin hơn.

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.