Mục lục
1. Giới thiệu
Khi hệ điều hành Windows bị chậm, thông thường, bạn sẽ mở Task Manager lên, xem CPU, RAM có bị đầy hay không. Trên Linux cũng có nhiều công cụ có chức năng tương tự như vậy, như top, vmstat, iostat, …
Trong bài viết này, tôi sẽ hướng dẫn các bạn sử dụng công cụ vmstat để xác định nguyên nhân hệ điều hành bị chậm. Các công cụ khác, tôi sẽ lần lượt giới thiệu ở những bài viết sau
2. Phân tích
Hệ thống bị chậm thường có thể xuất phát từ nhiều nguyên nhân. Thông thường, nguyên nhân thường xuất phát từ 1 trong 3 thành phần: CPU, RAM (Memory), và đĩa cứng.
Khi thấy hệ thống bị chậm, bạn cần khoanh vùng xem thành phần nào đang có vấn đề, để hạn chế những thao tác thừa thãi, không cần thiết, tập trung vào những hành động thực sự giúp cải thiện hệ thống.
Lệnh vmstat là một trong số các lệnh hữu dụng nhất đối với một người System Admin.
Nó thường được sử dụng trong các tình huống mà người quản trị muốn biết nhanh tải hoạt động trên máy chủ đang như thế nào.
3. Hướng dẫn sử dụng
Lệnh vmstat hiển thị thông tin về hiệu năng thời điểm hiện tại (các thông tin liên quan đến CPU, Disk I/O, Memory, Swap). Câu lệnh và kết quả hiển thị sẽ trông giống như sau:
# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 860944 1380 9701128 0 0 0 124 1 0 0 0 99 0 1
Kết quả trả ra có nhiều thông số, bạn có thể nhìn nhanh vào các thông số sau để khoanh vùng vấn đề như sau:
- Nếu chỉ số wa (time wait for I/O) mà cao, hệ thống của bạn đang gặp vấn đề liên quan đến I/O. Chúng ta sẽ sử dụng các câu lệnh kiểm tra chi tiết về I/O để phân tích sâu hơn.
- Nếu chỉ số b (process sleeping) luôn lớn hơn 0 và chỉ số us (chỉ số sử dụng CPU của user) hoặc chỉ số sy (chỉ số sử dụng CPU của system) cao, hệ thống có thể đang gặp vấn đề với CPU. Chúng ta sẽ sử dụng các câu lệnh phân tích CPU để kiểm tra sâu hơn.
- Nếu chỉ số si (swapped in to disk) và chỉ số so (swapped out to disk) luôn lớn hơn 0 bạn có thể đang gặp vấn đề với Memory. Chúng ta sẽ sử dụng các câu lênh kiểm tra chi tiết hơn liên quan đến Memory.
Để tránh trường hợp bạn phải gõ lệnh vmstat thủ công liên tục trong quá trình giám sát, bạn có thể sử dụng lệnh sau:
# vmstat <thời gian lặp lại> <Số lần sẽ hiển thị>
Ví dụ: Lệnh sau sẽ hiển thị kết quả lệnh vmstat sau mỗi 2 giây, kết thúc sau 5 kết quả.
# vmstat 2 5 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 860140 1380 9702400 0 0 0 124 1 0 0 0 99 0 1 0 0 0 859868 1380 9702400 0 0 0 8 3594 6897 0 0 99 0 0 1 0 0 859884 1380 9702400 0 0 0 16 3690 6923 0 0 99 0 1 0 0 0 860008 1380 9702400 0 0 0 0 3463 6780 0 0 99 0 0 0 0 0 859912 1380 9702420 0 0 0 8224 3857 7127 2 0 98 0 0
Bạn có thể bỏ qua tham số thứ 2 để câu lệnh vmstat sẽ chạy liên tục sau thời gian lặp lại
# vmstat 2 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 859036 1380 9702992 0 0 0 124 1 0 0 0 99 0 1 0 0 0 859468 1380 9703012 0 0 0 18 3451 6832 0 0 99 0 0 1 0 0 859388 1380 9703012 0 0 0 8 3318 6687 0 0 99 0 0 1 0 0 859404 1380 9703012 0 0 0 139 3430 6746 0 0 100 0 0 0 0 0 859436 1380 9703012 0 0 0 0 3441 6885 0 0 99 0 0 --MORE--
Bạn cũng có thể thêm option -t để kết quả có cột thời gian
# vmstat 2 100 -t procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- -----timestamp----- r b swpd free buff cache si so bi bo in cs us sy id wa st UTC 1 0 0 859748 1380 9702928 0 0 0 124 1 0 0 0 99 0 1 2021-05-10 13:34:42 0 0 0 858412 1380 9702928 0 0 0 8224 3841 6934 1 1 98 0 0 2021-05-10 13:34:44 0 0 0 859104 1380 9702948 0 0 0 8 3427 6839 0 0 99 0 0 2021-05-10 13:34:46 0 0 0 859104 1380 9702948 0 0 0 8 3273 6620 0 0 99 0 0 2021-05-10 13:34:48 0 0 0 859104 1380 9702948 0 0 0 168 3455 6873 0 0 99 0 0 2021-05-10 13:34:50
Nguồn: https://dangxuanduy.com/
Hiện tại, tôi có tổ chức đều đặn các khóa học về quản trị Oracle Database, tôi sẽ để thông tin ở đây, để bạn nào quan tâm về lịch học cũng như chương trình học có thể theo dõi nhé.
KHOÁ DÀNH CHO NGƯỜI MỚI
KHÓA HỌC: QUẢN TRỊ ORACLE DATABASE THẬT LÀ ĐƠN GIẢN (ADMIN 1)
CÁC KHOÁ NÂNG CAO:
KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ KIẾN TRÚC MULTITENANT 12c
KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ HỆ THỐNG DATA GUARD
CÁC KHOÁ COMBO:
COMBO 1: ADMIN 1 + MULTITENANT 12c
COMBO 3: ADMIN 1 + MULTITENANT 12c + DATA GUARD
LỊCH HỌC:
Mời bạn xem tại đây: LỊCH HỌC CÁC LỚP ORACLE
ĐĂNG KÝ:
https://forms.gle/MtCAoRQFenP886y79
Hãy tham gia group “Kho tài liệu kiến thức database” để cùng học hỏi và chia sẻ nhé.