Điểm:1

Giới hạn tổng của 2 quá trình sử dụng cpu?

lá cờ br

2 quy trình, gọi nó là A và B
A có mức độ ưu tiên caoï¼B có mức độ ưu tiên thấp
Tôi muốn giới hạn tổng mức sử dụng cpu của 2 quy trình này dưới 80%

Đôi khi A không có gì để làmï¼mức sử dụng cpu là 0%, tại thời điểm này, tôi hy vọng B thực thi và chiếm 80% cpu
Đôi khi A đang hoạt độngï¼mức sử dụng cpu là 80%, tại thời điểm này, tôi hy vọng B không làm gì và không sử dụng cpu (hoặc chỉ sử dụng một chút, 1%)
Đôi khi A chiếm 30% cpu, lúc này B nên chiếm 50% cpu

Tôi đang dùng Ubuntu 20.04, có cách nào để làm điều này không?

Điểm:1
lá cờ jp

Để chính xác điều này có lẽ bạn cần phải sử dụng các nhóm.

Đây là một ví dụ nhanh mà tôi đã thử nghiệm trên Ubuntu 20.04. Để đơn giản, đây là một máy ảo cpu duy nhất và tất cả các lệnh được chạy với quyền root.

  • Cài đặt công cụ
apt-get cài đặt căng thẳng cgroup-tools
  • tạo một hệ thống phân cấp các nhóm sẽ bị giới hạn cpu. Cha mẹ được đặt tên tối đa80 Và nó đã Mộtb bên dưới nó.
cgcreate -g cpu:max80/A -g cpu:max80/B
  • giới hạn cgroup cha tối đa80 đến 80% CPU.
tiếng vang 1000000 > /sys/fs/cgroup/cpu/max80/cpu.cfs_period_us
tiếng vang 800000 > /sys/fs/cgroup/cpu/max80/cpu.cfs_quota_us
  • giới hạn cgroup con b để có 10% cổ phần. Bạn đã đề cập đến 1% trong bài đăng của mình, nhưng 10% thì dễ hiển thị hơn. b sẽ sử dụng tất cả CPU có sẵn, nhưng nếu có xung đột với các quy trình trong Một sau đó nó sẽ được giới hạn ở mức 10%.
echo $((1024 * 10/100 )) > /sys/fs/cgroup/cpu/max80/B/cpu.shares

trong hành động

  • chạy một thư giãn quá trình chỉ trong Một. Việc sử dụng CPU sẽ là 80% cho thư giãn quá trình thực hiện công việc.
root@ubuntu:~# cgexec -g cpu:max80/A stress --cpu 1 &
[1] 2040
căng thẳng: thông tin: [2040] cử lợn: 1 cpu, 0 io, 0 vm, 0 hdd
root@ubuntu:~# ps -o pid,%cpu,cmd --sort -%cpu -p $(pidof stress)
    PID %CPU CMD
   2041 80.4 căng thẳng --cpu 1
   2040 0,0 căng thẳng --cpu 1
root@ubuntu:~# killall căng thẳng
  • chạy một thư giãn quá trình chỉ trong b. Việc sử dụng CPU sẽ là 80%.
root@ubuntu:~# cgexec -g cpu:max80/B stress --cpu 1 &
[1] 2065
căng thẳng: thông tin: [2065] cử lợn: 1 cpu, 0 io, 0 vm, 0 hdd
root@ubuntu:~# ps -o pid,%cpu,cmd --sort -%cpu -p $(pidof stress)
    PID %CPU CMD
   2066 80.6 căng thẳng --cpu 1
   2065 0,0 căng thẳng --cpu 1
root@ubuntu:~# killall căng thẳng
  • chạy một thư giãn quá trình trong Mộtb. Việc sử dụng CPU sẽ được chia 90%/10%.
root@ubuntu:~# cgexec -g cpu:max80/A stress --cpu 1 &
[1] 2078
stress: info: [2078] điều phối heo: 1 cpu, 0 io, 0 vm, 0 hdd
root@ubuntu:~# cgexec -g cpu:max80/B stress --cpu 1 &
[2] 2080
căng thẳng: thông tin: [2080] cử lợn: 1 cpu, 0 io, 0 vm, 0 hdd
root@ubuntu:~# ps -o pid,%cpu,cmd --sort -%cpu -p $(pidof stress)
    PID %CPU CMD
   2079 71,9 căng thẳng --cpu 1
   2081 7.2 căng thẳng --cpu 1
   2078 0,0 căng thẳng --cpu 1
   2080 0,0 căng thẳng --cpu 1
root@ubuntu:~# killall căng thẳng

liên kết

lá cờ br
Cảm ơn, rất chi tiết! Mình đã thử, nó có giới hạn mức sử dụng cpu dưới 80%, nhưng chỉ cho 1 cpu, máy mình có 8 cpu nên thực tế nó chiếm 80% của 800%, còn lại 7 cpu vẫn nhàn rỗi. Tôi hy vọng nó có thể sử dụng 80% tất cả cpus, vì vậy 800% * 80% = 640%, có cách nào để làm điều này không?
Andrew Lowther avatar
lá cờ jp
Tôi tin rằng bạn sẽ phải nhân hạn ngạch với số lượng lõi. `echo $((8 * 800000)) > /sys/fs/cgroup/cpu/max80/cpu.cfs_quota_us`. Nếu bạn đang sử dụng `stress` để kiểm tra thì bạn cần tăng số lượng worker `stress --cpu 8`.
Điểm:0
lá cờ cn

Trong Linux, mức độ ưu tiên của các chương trình đang chạy có thể được thay đổi bằng Lại đẹp chỉ huy. Bạn có thể đọc về cách gõ lệnh người đàn ông gia hạn trên thiết bị đầu cuối. Hướng dẫn trên internet sẽ giúp bạn bắt kịp tốc độ hiểu cách thức hoạt động của tính năng này, ví dụ: Tecmint, Hy vọng máy tính.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.