Email Doanh NghiệpSSLFirewall Anti DDoSTối ưu tốc độ website

NỘI DUNG

Banner blog lễ 30.4 và 1.5

Hướng dẫn theo dõi và phân tích hệ thống với lệnh strace Linux

Hưng Nguyễn

Đã kiểm duyệt nội dung

Ngày đăng:22/05/2025
Lượt xem

Đánh giá

5/5 - (1 bình chọn)

strace là một công cụ dòng lệnh mạnh mẽ trên Linux dùng để theo dõi các system call và tín hiệu mà một tiến trình thực hiện. Việc sử dụng strace giúp người quản trị và lập trình viên dễ dàng phân tích hành vi của chương trình, xác định lỗi, hoặc kiểm tra các vấn đề liên quan đến hiệu năng. Trong bài viết này, mình sẽ hướng dẫn bạn cách sử dụng strace Linux để theo dõi và phân tích hệ thống một cách hiệu quả.

Những điểm chính

  • Khái niệm: Hiểu rõ strace là gì, vai trò của công cụ này trong việc theo dõi và phân tích tiến trình trên hệ điều hành Linux.
  • Cách cài đặt: Biết cách cài đặt strace trên các hệ điều hành Linux phổ biến như Debian/Ubuntu và CentOS/RedHat.
  • Cách sử dụng để phân tích hệ thống: Nắm được các thao tác cơ bản và nâng cao để theo dõi system call, đếm số lần gọi, theo dõi mạng, tín hiệu, thời gian thực thi và xuất kết quả ra file log.
  • Biết thêm Vietnix – Nhà cung cấp dịch vụ lưu trữ đáng tin cậy với tốc độ cao, phù hợp cho cả cá nhân lẫn doanh nghiệp.
  • Giải đáp thắc mắc: Giải thích những câu hỏi thường gặp về strace giúp bạn dễ dàng ứng dụng công cụ này trong thực tế.

Lệnh strace Linux là gì?

strace Linux là một công cụ dòng lệnh mạnh mẽ trên hệ điều hành Linux, được sử dụng để theo dõi, phân tích và chẩn đoán các tiến trình đang chạy trong hệ thống. Lệnh này chủ yếu được dùng để debug chương trình, khắc phục sự cố và ghi nhận các lời gọi hệ thống (system call) cũng như tín hiệu (signal) mà tiến trình nhận được.

strace Linux là một công cụ dòng lệnh mạnh mẽ trên hệ điều hành Linux, được sử dụng để theo dõi, phân tích và chẩn đoán các tiến trình đang chạy trong hệ thống
strace Linux là một công cụ dòng lệnh mạnh mẽ trên hệ điều hành Linux, được sử dụng để theo dõi, phân tích và chẩn đoán các tiến trình đang chạy trong hệ thống

Trong trường hợp không có mã nguồn, strace đặc biệt hữu ích vì nó cho phép bạn quan sát cách chương trình tương tác với hệ điều hành. Cụ thể, strace có thể:

  • Debug chương trình và xác định lỗi trong quá trình thực thi.
  • Theo dõi và ghi lại tất cả lời gọi hệ thống mà một tiến trình thực hiện.
  • Hiển thị các đối số, giá trị trả về và tín hiệu mà tiến trình nhận được.
  • Hỗ trợ phân tích tiến trình khi mã nguồn không sẵn có.

Kết quả từ strace sẽ hiển thị tên lời gọi hệ thống, các đối số truyền vào (trong ngoặc đơn) và giá trị trả về, giúp bạn hiểu rõ cách tiến trình hoạt động và tương tác với hệ thống.

Cách cài đặt lệnh strace Linux

Để sử dụng được strace trong việc theo dõi và phân tích tiến trình, trước tiên bạn cần cài đặt công cụ này. Việc cài đặt rất đơn giản và có thể thực hiện dễ dàng trên hầu hết các bản phân phối Linux phổ biến hiện nay:

1. Trên Debian/Ubuntu

Với các hệ điều hành dựa trên Debian như Ubuntu, bạn sử dụng lệnh sau để cài đặt:

sudo apt install strace

2. Trên CentOS/RedHat

Đối với hệ điều hành CentOS hoặc RedHat, sử dụng lệnh:

yum install strace

Sau khi cài đặt hoàn tất, bạn có thể kiểm tra phiên bản strace để đảm bảo công cụ đã được cài đặt thành công bằng lệnh:

strace -V

Lệnh strace cung cấp nhiều tùy chọn để theo dõi hành vi hệ thống của tiến trình. Dưới đây là các cách sử dụng phổ biến để phân tích hệ thống với strace:

1. Xem lời gọi hệ thống, đối số truyền vào và kết quả trả về

strace ls

iconLưu ý

Ở đây ls là lệnh cần theo dõi các lời gọi hệ thống.

Như có thể thấy, strace sẽ hiển thị lời gọi hệ thống, đối số (trong dấu ngoặc đơn) và kết quả trả về của lệnh ls. Dòng cuối cùng +++ exited with 0 +++ cho biết mã thoát là 0, tức là không có lỗi xảy ra. Trong trường hợp có lỗi, mã thoát sẽ là -1.

2. Đếm số lượng lời gọi hệ thống

strace -c ls

iconLưu ý

Ở đây ls là lệnh cần theo dõi các lời gọi hệ thống. Kết quả hiển thị số lần mỗi lời gọi hệ thống được thực hiện, tổng số lời gọi và thời gian tiêu tốn cho từng lời gọi.

3. Theo dõi các lời gọi hệ thống cụ thể

strace -e trace=write ls

iconLưu ý

Ở đây ls là lệnh cần theo dõi và write là tên của lời gọi hệ thống cần theo dõi. Kết quả chỉ hiển thị tên, đối số và kết quả trả về của lời gọi hệ thống write.

4. Theo dõi các lời gọi hệ thống liên quan đến mạng

strace -e trace=network nc -v -n 127.0.0.1 801

iconLưu ý

Ở đây nc -v -n 127.0.0.1 801 là lệnh cần theo dõi. network là nhóm lời gọi hệ thống liên quan đến mạng. Kết quả chỉ hiển thị tên, đối số và kết quả của các lời gọi hệ thống thuộc nhóm network.

5. Theo dõi các lời gọi hệ thống liên quan đến tín hiệu (signal)

strace -e trace=signal nc -v -n 127.0.0.1 801

iconLưu ý

Ở đây nc -v -n 127.0.0.1 801 là lệnh cần theo dõi. signal là nhóm lời gọi hệ thống liên quan đến tín hiệu. Kết quả chỉ hiển thị tên, đối số và kết quả của các lời gọi hệ thống thuộc nhóm signal.

6. In dấu thời gian (timestamp) của từng lời gọi

strace -r ls

iconLưu ý

Ở đây ls là lệnh cần theo dõi. Kết quả hiển thị dấu thời gian tương đối tại thời điểm bắt đầu của từng lời gọi hệ thống. Nó cho biết độ trễ giữa các lời gọi liên tiếp.

7. In thời gian thực thi của từng lời gọi hệ thống

strace -T ls

iconLưu ý

Ở đây ls là lệnh cần theo dõi. Kết quả hiển thị thời gian tiêu tốn cho mỗi lời gọi hệ thống, được in ở cuối mỗi dòng.

8. In thời gian thực (wall clock) của từng lời gọi hệ thống

strace -t ls

iconLưu ý

Ở đây ls là lệnh cần theo dõi. Như có thể thấy, mỗi dòng được tiền tố bằng thời gian thực (wall clock time) của từng lời gọi hệ thống.

9. In giá trị thanh ghi instruction pointer (IP)

strace -i ls

Kết quả hiển thị giá trị của thanh ghi instruction pointer trên mỗi dòng của đầu ra.

10. Ghi kết quả theo dõi ra file

strace -o output.txt ls

Kết quả theo dõi sẽ được ghi vào file output.txt thay vì hiển thị trên màn hình.

Vietnix – Nhà cung cấp dịch vụ lưu trữ uy tín, tốc độ cao

Vietnix là nhà cung cấp dịch vụ thuê VPS với hạ tầng mạnh mẽ, 100% SSD, đảm bảo tốc độ truy cập nhanh và ổn định. Đặc biệt, dịch vụ VPS Linux tại Vietnix giúp bạn dễ dàng quản trị, linh hoạt cấu hình và vận hành mượt mà ngay cả với các tác vụ nặng. Hệ thống backup tự động, bảo mật cao và giao diện thân thiện là những điểm nổi bật khiến Vietnix trở thành lựa chọn đáng tin cậy cho doanh nghiệp và cá nhân. Liên hệ ngay để được tư vấn chi tiết!

Thông tin liên hệ:

  • Hotline: 18001093
  • Email: sales@vietnix.com.vn 
  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
  • Website: https://vietnix.vn/

Câu hỏi thường gặp

Có thể dùng strace để phát hiện vấn đề tương thích thư viện trong môi trường Docker không?

Có, strace có thể hỗ trợ phát hiện vấn đề tương thích thư viện trong môi trường Docker, nhưng nó chỉ hiệu quả trong một số tình huống nhất định. Dưới đây là phân tích ngắn gọn:
Khi strace hữu ích:
Phát hiện lỗi không tìm thấy thư viện (.so) do thiếu dependency hoặc sai phiên bản.
Theo dõi syscall open, access, stat để xem container đang cố tìm thư viện ở đâu và có bị lỗi không.
Kiểm tra lỗi phân quyền hoặc sandbox khi container bị giới hạn quyền truy cập thư viện hệ thống.
Giới hạn của strace:
– Không thể so sánh phiên bản thư viện hoặc kiểm tra ABI compatibility.
– Không thay thế các công cụ như ldd, ldconfig, readelf, hoặc ldd --version để phân tích phụ thuộc thư viện.
– Trong container có nhiều layer ảo hóa và chroot, việc theo dõi đường dẫn thật có thể khó khăn nếu không dùng đúng namespace/PID.

Có nên dùng strace để theo dõi ứng dụng frontend như Electron hoặc node chạy trên server không?

Có thể dùng strace để theo dõi ứng dụng frontend như Electron hoặc Node.js, nhưng cần cân nhắc:
Nên dùng khi:
– Ứng dụng gặp lỗi hệ thống (file, mạng, phân quyền).
– Cần phân tích I/O, syscall, hoạt động ở tầng hệ điều hành.
– Debug ứng dụng không có source code.
Không nên dùng khi:
– Muốn theo dõi logic bên trong JavaScript.
– Ứng dụng chạy lâu dài trên production (gây overhead).
– Ứng dụng sinh nhiều tiến trình, log dễ bị nhiễu nếu không lọc kỹ.

Lời kết

Lệnh strace Linux là công cụ mạnh mẽ giúp bạn theo dõi và phân tích chi tiết các lời gọi hệ thống. Qua việc sử dụng các tùy chọn đa dạng, bạn có thể dễ dàng phát hiện lỗi, tối ưu hiệu suất và hiểu rõ hơn về hoạt động bên trong của ứng dụng. Việc nắm vững cách dùng strace sẽ là lợi thế lớn trong quản trị hệ thống và phát triển phần mềm. Hy vọng với hướng dẫn chi tiết trong bài, bạn đã có thể áp dụng strace hiệu quả vào công việc hàng ngày của mình.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Icon tab

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

Vector

PHẦN CỨNG MẠNH MẼ

Vector

HỖ TRỢ 24/7

Vector
ĐĂNG KÝ NGAYGroup icon
khuyến mãi sinh nhật
Nhanh tay, số lượng có hạn!
17/05/2025 - 22/06/2025
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

icon popup single post

CẢM ƠN BẠN ĐÃ ĐÁNH GIÁ BÀI VIẾT

Vietnix sẽ luôn cố gắng cải thiện chất lượng dịch vụ mỗi ngày

ĐÓNG

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG