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à:
- 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). - 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. - 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ộtNI
hiển thị giá trị "nice".