Lệnh time trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh time trong Linux để đo thời gian thực thi của các lệnh và script. Lệnh time cung cấp thông tin chi tiết về các tài nguyên được sử dụng bởi một chương trình, bao gồm thời gian thực đã trôi qua (elapsed real time), thời gian CPU người dùng (user CPU time) và thời gian CPU hệ thống (system CPU time). Bạn sẽ bắt đầu bằng cách hiểu cách sử dụng cơ bản của lệnh time, sau đó học cách sử dụng nó để đo thời gian thực thi của các lệnh và script khác nhau. Lab này sẽ giúp bạn hiểu rõ hơn về hiệu suất hệ thống của mình và xác định các khu vực cần tối ưu hóa.

Tìm hiểu lệnh time

Trong bước này, bạn sẽ tìm hiểu về lệnh time trong Linux, được sử dụng để đo thời gian thực thi của một lệnh hoặc một script.

Lệnh time cung cấp thông tin về các tài nguyên được sử dụng bởi một chương trình, bao gồm thời gian thực đã trôi qua, thời gian CPU người dùng và thời gian CPU hệ thống.

Để sử dụng lệnh time, chỉ cần chạy nó trước lệnh bạn muốn đo:

time command_to_measure

Đây là một ví dụ:

time sleep 2

Ví dụ đầu ra:

real    0m2.001s
user    0m0.000s
sys     0m0.001s

Đầu ra hiển thị:

  • real: Thời gian thực (wall clock) đã trôi qua mà lệnh mất để hoàn thành.
  • user: Lượng thời gian CPU mà lệnh đã sử dụng ở chế độ người dùng.
  • sys: Lượng thời gian CPU mà lệnh đã sử dụng ở chế độ kernel.

Lệnh time cũng có thể được sử dụng với shell script:

time ./my_script.sh

Điều này sẽ đo thời gian thực thi của toàn bộ script.

Lệnh time là một công cụ hữu ích để hiểu hiệu suất của các lệnh và script của bạn, đồng thời có thể giúp bạn xác định các khu vực cần tối ưu hóa.

Đo thời gian thực thi của các lệnh

Trong bước này, bạn sẽ học cách sử dụng lệnh time để đo thời gian thực thi của các lệnh và script khác nhau.

Hãy bắt đầu bằng cách đo thời gian thực thi của một lệnh đơn giản:

time echo "Hello, World!"

Ví dụ đầu ra:

Hello, World!

real    0m0.005s
user    0m0.001s
sys     0m0.002s

Như bạn có thể thấy, lệnh time cung cấp thông tin chi tiết về thời gian thực thi của lệnh echo.

Tiếp theo, hãy đo thời gian thực thi của một script đơn giản:

cat > my_script.sh << EOF
#!/bin/bash
sleep 3
echo "Script completed"
EOF
chmod +x my_script.sh
time ./my_script.sh

Ví dụ đầu ra:

Script completed

real    0m3.005s
user    0m0.001s
sys     0m0.002s

Trong ví dụ này, lệnh time đo thời gian thực thi của script my_script.sh, bao gồm một lệnh sleep 3.

Lệnh time cũng có thể được sử dụng để đo hiệu suất của các lệnh hoặc script phức tạp hơn, chẳng hạn như biên dịch một chương trình hoặc chạy một tác vụ phân tích dữ liệu. Thông tin này có thể có giá trị để xác định các nút thắt cổ chai về hiệu suất và tối ưu hóa mã của bạn.

Phân tích hiệu suất lệnh với time

Trong bước này, bạn sẽ học cách sử dụng lệnh time để phân tích hiệu suất của các lệnh và xác định các nút thắt cổ chai tiềm ẩn.

Hãy bắt đầu bằng cách chạy một lệnh đơn giản thực hiện một tác vụ sử dụng nhiều CPU:

time python -c "import time; time.sleep(5)"

Ví dụ đầu ra:

real    0m5.005s
user    0m0.001s
sys     0m0.001s

Đầu ra cho thấy rằng script Python mất 5 giây để hoàn thành và phần lớn thời gian được sử dụng trong thời gian real (wall clock), cho thấy rằng tác vụ này bị giới hạn bởi CPU.

Bây giờ, hãy chạy một lệnh thực hiện một tác vụ I/O-intensive:

time dd if=/dev/zero of=output.txt bs=1M count=100

Ví dụ đầu ra:

100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0927554 s, 1.1 GB/s

real    0m0.094s
user    0m0.001s
sys     0m0.092s

Trong trường hợp này, phần lớn thời gian được sử dụng trong thời gian sys (hệ thống), cho thấy rằng tác vụ này bị giới hạn bởi I/O.

Bằng cách phân tích thời gian real, usersys, bạn có thể xác định loại tài nguyên (CPU hoặc I/O) là nút thắt cổ chai cho một lệnh hoặc script cụ thể. Thông tin này có thể được sử dụng để tối ưu hóa hiệu suất ứng dụng của bạn.

Tóm tắt

Trong lab này, bạn đã học về lệnh time của Linux, được sử dụng để đo thời gian thực thi của các lệnh và script. Đầu tiên, bạn đã hiểu cách sử dụng cơ bản của lệnh time, cung cấp thông tin về thời gian CPU thực, người dùng và hệ thống được sử dụng bởi một lệnh. Sau đó, bạn đã thực hành đo thời gian thực thi của các lệnh và script đơn giản, đồng thời học cách lệnh time có thể giúp xác định các khu vực cần tối ưu hóa trong mã của bạn.

Last Updated : 10/05/2025