Lệnh psnice trong Linux

Giới thiệu

Trong lab này, chúng ta sẽ khám phá lệnh psnice trong Linux, được sử dụng để điều chỉnh độ ưu tiên của các tiến trình đang chạy. Lệnh psnice cho phép bạn tăng hoặc giảm độ ưu tiên của một tiến trình, điều này có thể hữu ích cho việc quản lý tài nguyên hệ thống và tối ưu hóa hiệu năng. Chúng ta sẽ đề cập đến các kiến thức cơ bản về lệnh psnice và cung cấp các trường hợp sử dụng thực tế để minh họa chức năng của nó.

Lab này sẽ hướng dẫn bạn cách điều chỉnh độ ưu tiên của các tiến trình đang chạy bằng lệnh psnice. Bạn sẽ học cách kiểm tra độ ưu tiên hiện tại của một tiến trình, tăng độ ưu tiên của nó và giảm độ ưu tiên của nó. Các kỹ thuật này có thể có giá trị cho việc quản lý tài nguyên hệ thống và cải thiện hiệu năng của các ứng dụng quan trọng.

Giới thiệu về lệnh psnice

Trong bước này, chúng ta sẽ khám phá lệnh psnice trong Linux, được sử dụng để điều chỉnh độ ưu tiên của các tiến trình đang chạy. Lệnh psnice cho phép bạn tăng hoặc giảm độ ưu tiên của một tiến trình, điều này có thể hữu ích cho việc quản lý tài nguyên hệ thống và tối ưu hóa hiệu năng.

Đầu tiên, hãy kiểm tra độ ưu tiên hiện tại của một tiến trình đang chạy bằng lệnh ps:

ps -o pid,ni,cmd -p $(pgrep -n bash)

Ví dụ đầu ra:

  PID   NI CMD
 1234   0  /bin/bash

Cột NI hiển thị giá trị "nice" của tiến trình, có phạm vi từ -20 (ưu tiên cao nhất) đến 19 (ưu tiên thấp nhất). Giá trị "nice" mặc định cho các tiến trình mới là 0.

Bây giờ, hãy sử dụng lệnh psnice để tăng độ ưu tiên của tiến trình bash hiện tại:

sudo psnice -n -5 -p $(pgrep -n bash)

Lệnh này đặt giá trị "nice" của tiến trình bash hiện tại thành -5, điều này làm tăng độ ưu tiên của nó.

Hãy xác minh sự thay đổi:

ps -o pid,ni,cmd -p $(pgrep -n bash)

Ví dụ đầu ra:

  PID   NI CMD
 1234  -5  /bin/bash

Như bạn có thể thấy, giá trị "nice" của tiến trình bash đã được thay đổi thành -5, cho biết độ ưu tiên cao hơn.

Điều chỉnh độ ưu tiên tiến trình với psnice

Trong bước này, chúng ta sẽ học cách sử dụng lệnh psnice để điều chỉnh độ ưu tiên của các tiến trình đang chạy.

Đầu tiên, hãy bắt đầu một tiến trình mới chạy vô thời hạn:

sleep 1000 &

Điều này sẽ bắt đầu một tiến trình sleep chạy trong 1000 giây ở chế độ nền.

Bây giờ, hãy kiểm tra độ ưu tiên của tiến trình sleep:

ps -o pid,ni,cmd -p $(pgrep -n sleep)

Ví dụ đầu ra:

  PID   NI CMD
 1235   0 sleep 1000

Như bạn có thể thấy, tiến trình sleep có giá trị "nice" là 0, đây là độ ưu tiên mặc định.

Hãy giảm độ ưu tiên của tiến trình sleep bằng lệnh psnice:

sudo psnice -n 5 -p $(pgrep -n sleep)

Lệnh này đặt giá trị "nice" của tiến trình sleep thành 5, điều này làm giảm độ ưu tiên của nó.

Xác minh sự thay đổi:

ps -o pid,ni,cmd -p $(pgrep -n sleep)

Ví dụ đầu ra:

  PID   NI CMD
 1235   5 sleep 1000

Bây giờ, hãy tăng độ ưu tiên của tiến trình sleep:

sudo psnice -n -5 -p $(pgrep -n sleep)

Lệnh này đặt giá trị "nice" của tiến trình sleep thành -5, điều này làm tăng độ ưu tiên của nó.

Xác minh sự thay đổi:

ps -o pid,ni,cmd -p $(pgrep -n sleep)

Ví dụ đầu ra:

  PID   NI CMD
 1235  -5 sleep 1000

Như bạn có thể thấy, chúng ta đã điều chỉnh thành công độ ưu tiên của tiến trình sleep bằng lệnh psnice.

Các trường hợp sử dụng thực tế của lệnh psnice

Trong bước này, chúng ta sẽ khám phá một số trường hợp sử dụng thực tế cho lệnh psnice.

Một trường hợp sử dụng phổ biến là ưu tiên các tiến trình quan trọng hơn các tiến trình ít quan trọng hơn. Ví dụ: giả sử bạn có một web server đang chạy trên hệ thống của bạn và bạn muốn đảm bảo rằng tiến trình web server có độ ưu tiên cao hơn các tiến trình nền khác.

Đầu tiên, hãy bắt đầu một tiến trình nền mô phỏng một tác vụ ít quan trọng hơn:

while true; do
  echo "Background process running"
  sleep 1
done &

Điều này sẽ bắt đầu một tiến trình nền chạy vô thời hạn, in một thông báo mỗi giây.

Bây giờ, hãy tìm ID tiến trình của tiến trình web server (thay thế apache2 bằng tên của tiến trình web server của bạn):

WEB_SERVER_PID=$(pgrep -n apache2)

Sau đó, chúng ta có thể sử dụng lệnh psnice để tăng độ ưu tiên của tiến trình web server:

sudo psnice -n -5 -p $WEB_SERVER_PID

Điều này đặt giá trị "nice" của tiến trình web server thành -5, giúp nó có độ ưu tiên cao hơn tiến trình nền.

Bạn có thể xác minh các thay đổi về độ ưu tiên bằng cách chạy lệnh ps:

ps -o pid,ni,cmd -p $WEB_SERVER_PID

Ví dụ đầu ra:

  PID   NI CMD
 1236  -5 /usr/sbin/apache2 -k start

Một trường hợp sử dụng thực tế khác cho psnice là tạm thời giảm độ ưu tiên của một tiến trình sử dụng nhiều tài nguyên, chẳng hạn như một công việc sao lưu hoặc xử lý dữ liệu chạy dài, để đảm bảo rằng các tiến trình quan trọng khác có thể chạy trơn tru.

Ví dụ: giả sử bạn có một công việc xử lý dữ liệu đang chạy ở chế độ nền:

python data_processing.py &

Bạn có thể sử dụng psnice để tạm thời giảm độ ưu tiên của tiến trình này:

sudo psnice -n 5 -p $(pgrep -n python)

Điều này sẽ cho phép các tiến trình quan trọng khác có độ ưu tiên cao hơn và truy cập nhiều tài nguyên hệ thống hơn, trong khi công việc xử lý dữ liệu tiếp tục chạy ở chế độ nền với độ ưu tiên thấp hơn.

Tóm tắt

Trong lab này, chúng ta đã khám phá lệnh psnice trong Linux, được sử dụng để điều chỉnh độ ưu tiên của các tiến trình đang chạy. Chúng ta đã học cách kiểm tra độ ưu tiên hiện tại của một tiến trình bằng lệnh ps và cách tăng hoặc giảm độ ưu tiên của một tiến trình bằng lệnh psnice. Chúng ta cũng đã thảo luận về các trường hợp sử dụng thực tế của lệnh psnice, chẳng hạn như quản lý tài nguyên hệ thống và tối ưu hóa hiệu năng.

Những điểm chính rút ra từ lab này là:

  1. Lệnh psnice cho phép bạn điều chỉnh độ ưu tiên của các tiến trình đang chạy, với giá trị "nice" dao động từ -20 (ưu tiên cao nhất) đến 19 (ưu tiên thấp nhất).
  2. Bạn có thể sử dụng lệnh psnice để tăng hoặc giảm độ ưu tiên của một tiến trình, điều này có thể hữu ích cho việc quản lý tài nguyên hệ thống và tối ưu hóa hiệu năng.
  3. Lệnh ps có thể được sử dụng để kiểm tra độ ưu tiên hiện tại của một tiến trình đang chạy, với cột NI hiển thị giá trị "nice".

400+ câu lệnh phổ biến trong Linux