Không biết trước đây mình đã sử dụng máy chủ VPS có cấu hình cao hay có vấn đề gì về hiệu suất của máy chủ VPS Alibaba Cloud Hong Kong mới chuyển. Tóm lại, mỗi lần đào trang vào ban đêm là có vấn đề. máy chủ trở nên không ổn định và tải hệ thống đột nhiên tăng cao đột ngột. Sử dụng các công cụ phân tích nhật ký máy chủ: ngxtop và GoAccess, bạn cũng có thể phát hiện ra rằng một số IP liên tục quét cổng máy chủ và nền WP.

Tuy nhiên, điều khó hiểu nhất là sau khi vào phần phụ trợ WP, tôi mở hơn chục trang cùng lúc bằng trình duyệt, dùng lệnh Top để theo dõi tải hệ thống VPS theo thời gian thực và thấy rằng tải tăng lên. theo đường thẳng, từ vài phần mười mức ban đầu đến 3 hoặc hơn. Sau đó, bạn sẽ thấy rằng việc truy cập trang web chậm lại và phản hồi bị chậm trễ. Điều này chỉ khiến tôi tự hỏi liệu mình có mua phải máy chủ VPS Cloud của Alibaba giả mạo hay không.

Nếu bạn gặp phải vấn đề tương tự như tôi, bạn có thể thử làm theo các lệnh giám sát hệ thống Linux được giới thiệu trong bài viết này để tạo một bản báo cáo toàn diện về "CPU, bộ nhớ, IO đĩa, lưu lượng card mạng, quy trình hệ thống, tỷ lệ chiếm dụng cổng, v.v." trải nghiệm máy chủ VPS của bạn”. Máy chủ VPS thực sự đáng giá từng xu. Máy chủ VPS giá rẻ thực sự không phù hợp để chạy các chương trình động như WordPress.

Để biết thêm các công cụ tiện ích VPS Linux, bạn cũng có thể thử:

  1. Linux VPS gắn Google Drive và Dropbox-thực hiện đồng bộ hóa và sao lưu dữ liệu máy chủ VPS
  2. Ba công cụ miễn phí giúp bạn phát hiện tính xác thực của máy chủ VPS - Phương pháp kiểm tra tốc độ và hiệu suất máy chủ VPS
  3. Nhận xét WordPress Thông báo WeChat và lời nhắc email-Nước sốt máy chủ và email SMTP của bên thứ ba

Bài viết này được chia thành hai phần: Nếu bạn đã biết cách sử dụng một lệnh giám sát nào đó, bạn có thể tìm kiếm nhanh trực tiếp trong Hướng dẫn tham khảo nhanh về lệnh giám sát hệ thống Linux. Có một hộp tìm kiếm ở phía trên. góc bên phải của bảng bạn có thể nhập vào để tìm kiếm nhanh chức năng hoặc lệnh mà bạn muốn. Nếu bạn không quen với một lệnh nhất định, bạn có thể sử dụng phím tắt chức năng xem trang web của trình duyệt Chrome: ctrl+f và nhập lệnh để chuyển trực tiếp đến chi tiết.

Tổng hợp các lệnh giám sát hệ thống Linux - master CPU, bộ nhớ, disk IO, thông tin lưu lượng card mạng để nhanh chóng xác định các điểm nghẽn hiệu năng

PS: Cập nhật ngày 14/04/2018, Linux còn có lệnh Crontab rất hữu ích, dùng để thực thi các tác vụ thường xuyên. Tham khảo: Hướng dẫn cú pháp và thao tác cơ bản của Linux Crontab command Scheduled task-VPS/Server Automation. .

Hướng dẫn tham khảo nhanh lệnh giám sát hệ thống Linux

Đặt hàngchức năngVí dụ sử dụng
miễn phíXem mức sử dụng bộ nhớ, bao gồm bộ nhớ vật lý và bộ nhớ ảomiễn phí -h hoặc miễn phí -m
vmstatThống kê trên toàn bộ hệ thống, bao gồm thống kê về các tiến trình kernel, bộ nhớ ảo, đĩa, bẫy và hoạt động của CPUvmstat 2 100
đứng đầuHiển thị thời gian thực việc sử dụng tài nguyên và trạng thái chung của từng quy trình trong hệ thốngđứng đầu
mpstatCông cụ giám sát hệ thống thời gian thực báo cáo số liệu thống kê liên quan đến CPUmpstat
sarThu thập, báo cáo và lưu trữ mức sử dụng CPU, bộ nhớ, cổng đầu vào và đầu rasar -n DEV 3 100
netstatKiểm tra kết nối mạng của từng cổng của máy hiển thị số liệu thống kê liên quan đến giao thức IP, TCP, UDP và ICMPnetstat -a
tcpdumpĐược sử dụng để chụp hoặc lọc các gói TCP/IP được nhận hoặc truyền trên một giao diện được chỉ định trên mạngtcpdump -i eth0 -c 3
IPTrafĐược sử dụng để tạo dữ liệu thống kê bao gồm thông tin TCP, số lượng UDP, thông tin ICMP và OSPF, thông tin tải Ethernet, thông tin trạng thái nút, lỗi tổng kiểm tra IP, v.v.iptraf
địa điểmKiểm tra mức sử dụng dung lượng ổ đĩa của hệ thống tệp Linuxdf-h
máy điều hòaThu thập và hiển thị thống kê trạng thái đầu vào và đầu ra của thiết bị lưu trữ hệ thốngiostat -x -k 2 100
iotopCác công cụ hàng đầu để theo dõi việc sử dụng I/O của đĩaiotop
lsofĐược sử dụng để hiển thị tất cả các tệp và quy trình đang mở ở dạng danh sáchlsof
trênNhững gì được hiển thị là sự kết hợp của nhiều tài nguyên hệ thống khác nhau (CPU, bộ nhớ, mạng, I/O, kernel) và được tô màu trong điều kiện tải cao.trên
htopNó rất giống với lệnh top, một công cụ giám sát quy trình Linux thời gian thực tương tác tiên tiến.htop
tái bútLệnh xem quy trình cơ bản nhất nhưng cũng rất mạnh mẽphụ trợ ps
cái nhìnGiám sát CPU, tải trung bình, bộ nhớ, lưu lượng mạng, I/O ổ đĩa, các bộ xử lý khác và việc sử dụng không gian hệ thống tệpcái nhìn
dstatMột công cụ thống kê thông tin hệ thống tất cả trong một có thể được sử dụng để thay thế các lệnh vmstat, iostat, netstat, nfsstat và ifstat.dstat
thời gian hoạt độngĐược sử dụng để kiểm tra xem máy chủ đã chạy được bao lâu và có bao nhiêu người dùng đã đăng nhập cũng như để nhanh chóng tìm hiểu tải của máy chủ.thời gian hoạt động
dmesgChủ yếu được sử dụng để hiển thị thông tin kernel. Sử dụng dmesg để chẩn đoán lỗi phần cứng máy một cách hiệu quả hoặc thêm các sự cố phần cứng.dmesg
mpstatĐược sử dụng để báo cáo hoạt động của từng CPU của máy chủ CPU đa kênh, cũng như trạng thái CPU của toàn bộ máy chủ.mpstat 2 3
nmonGiám sát CPU, bộ nhớ, I/O, hệ thống tệp và tài nguyên mạng. Để sử dụng bộ nhớ, nó có thể hiển thị tổng/bộ nhớ còn lại, dung lượng trao đổi và các thông tin khác trong thời gian thực.nmon
mytopĐược sử dụng để theo dõi các luồng và hiệu suất của mysql. Nó cung cấp cho bạn chế độ xem thời gian thực về cơ sở dữ liệu của bạn và những truy vấn nào đang được xử lý.mytop
iftopDùng để giám sát lưu lượng thời gian thực của card mạng (có thể chỉ định phân đoạn mạng), đảo ngược độ phân giải IP, hiển thị thông tin cổng, v.v.iftop
jnettopGiám sát lưu lượng mạng theo cách tương tự nhưng trực quan hơn iftop. Nó cũng hỗ trợ đầu ra văn bản tùy chỉnh và có thể phân tích sâu nhật ký theo cách thân thiện và tương tác.jnettop
ngrepgrep cho lớp mạng. Nó sử dụng pcap và cho phép khớp các gói bằng cách chỉ định các biểu thức chính quy mở rộng hoặc biểu thức thập lục phân.ngrep
nmapCó thể quét các cổng mở của máy chủ và phát hiện hệ điều hành nào đang được sử dụngnmap
TiêuKiểm tra kích thước của một thư mục trong hệ thống Linuxdu -sh tên thư mục
fdiskXem thông tin ổ cứng và phân vùngfdisk -l

1. Giám sát bộ nhớ

1.1  lệnh miễn phí

free có thể được sử dụng để kiểm tra nhanh việc sử dụng bộ nhớ của máy chủ VPS, bao gồm bộ nhớ vật lý và bộ nhớ ảo. Bạn có thể thêm tham số sau: -h và -m, nếu không nó sẽ hiển thị theo kb theo mặc định. Kết quả chạy lệnh như sau:

Mô tả tham số liên quan:

tổng: kích thước bộ nhớ vật lý, là bộ nhớ thực của máy

used: kích thước bộ nhớ đã sử dụng. Giá trị này bao gồm bộ nhớ đệm và bộ nhớ thực sự được ứng dụng sử dụng.

miễn phí: kích thước bộ nhớ chưa sử dụng

shared: kích thước bộ nhớ dùng chung, là một cách giao tiếp giữa các quá trình

bộ đệm: kích thước bộ nhớ bị chiếm bởi bộ đệm

được lưu trong bộ nhớ đệm: kích thước bộ nhớ bị bộ nhớ đệm chiếm dụng

Lệnh 1.2  vmstat

vmstat (Thống kê bộ nhớ ảo, thống kê bộ nhớ ảo) là số liệu thống kê về tình hình chung của hệ thống, bao gồm số liệu thống kê về các tiến trình kernel, bộ nhớ ảo, đĩa, bẫy và hoạt động của CPU. Định dạng lệnh: vmstat 2 100, trong đó 2 đại diện cho khoảng thời gian làm mới và 100 đại diện cho số lượng đầu ra. Kết quả chạy lệnh như sau:

Mô tả tham số liên quan:

1 quy trình

  1. r cột thể hiện số lượng tiến trình đang chạy và chờ các lát thời gian của CPU. Nếu giá trị này lớn hơn số lượng CPU hệ thống trong một thời gian dài, điều đó có nghĩa là tài nguyên CPU không đủ. có thể cân nhắc việc tăng CPU ;
  2. Cột b cho biết số lượng tiến trình đang chờ tài nguyên, chẳng hạn như chờ I/O hoặc hoán đổi bộ nhớ.

2 kỉ niệm

  1. cột swpd thể hiện lượng bộ nhớ được chuyển sang vùng trao đổi bộ nhớ (tính bằng KB). Nếu giá trị của swpd không bằng 0 hoặc tương đối lớn và các giá trị của si và như vậy bằng 0 trong một thời gian dài thì nhìn chung không cần phải lo lắng về tình huống này và nó sẽ không ảnh hưởng đến hiệu suất hệ thống;
  2. cột trống thể hiện dung lượng bộ nhớ vật lý trống hiện tại (tính bằng KB);
  3. cột buff thể hiện dung lượng bộ nhớ trong bộ đệm đệm. Nói chung, việc đệm chỉ được yêu cầu đối với các thiết bị khối đọc và ghi;
  4. cột bộ đệm cho biết dung lượng bộ nhớ được lưu trong bộ nhớ đệm của trang. Nó thường được lưu vào bộ đệm cho hệ thống tệp thường xuyên truy cập sẽ được lưu vào bộ đệm. Nếu giá trị bộ đệm lớn hơn, điều đó có nghĩa là có nhiều tệp được lưu trong bộ nhớ đệm hơn. Nếu bi trong IO tại thời điểm này tương đối nhỏ, điều đó có nghĩa là hiệu quả của hệ thống tệp sẽ tốt hơn.

3 trao đổi

  1. si cột cho biết dung lượng bộ nhớ được truyền từ đĩa sang vùng trao đổi bộ nhớ;
  2. vì vậy cột biểu thị lượng được truyền từ bộ nhớ sang đĩa, nghĩa là lượng vùng trao đổi bộ nhớ được nhập vào bộ nhớ
  3. Trong trường hợp bình thường, các giá trị của si và so đều bằng 0. Nếu giá trị của si và so không bằng 0 trong một thời gian dài, điều đó có nghĩa là bộ nhớ hệ thống không đủ và bạn cần phải xem xét có nên tăng bộ nhớ hệ thống hay không.

4IO

  1. cột bi thể hiện tổng lượng dữ liệu được đọc từ thiết bị khối (tức là đĩa đọc, đơn vị KB/giây)
  2. cột bo thể hiện tổng lượng dữ liệu được ghi vào thiết bị khối (nghĩa là ghi vào đĩa, tính bằng KB/giây)
    Giá trị tham chiếu bi+bo được đặt ở đây là 1000, Nếu nó vượt quá 1000 và Giá trị wa tương đối lớn cho biết tắc nghẽn hiệu năng IO của đĩa hệ thống .

5 hệ thống

  1. trong cột biểu thị số lần ngắt thiết bị mỗi giây được quan sát trong một khoảng thời gian nhất định;
  2. cột cs thể hiện số lần chuyển ngữ cảnh được tạo ra mỗi giây.
    Hai giá trị trên càng lớn thì bạn sẽ thấy hạt nhân tiêu thụ càng nhiều thời gian CPU.

6 CPU

  1. us cột hiển thị phần trăm thời gian mà quá trình người dùng tiêu thụ CPU. Khi giá trị của us tương đối cao, có nghĩa là tiến trình của người dùng tiêu tốn rất nhiều thời gian của CPU Nếu lớn hơn 50% trong thời gian dài, bạn cần xem xét việc tối ưu hóa chương trình hay gì đó.
  2. sy cột hiển thị phần trăm thời gian mà quá trình kernel tiêu thụ CPU. Khi giá trị của sy tương đối cao, điều đó có nghĩa là kernel tiêu tốn nhiều thời gian của CPU Nếu us+sy vượt quá 80%, điều đó có nghĩa là tài nguyên CPU không đủ.
  3. cột id hiển thị phần trăm thời gian CPU không hoạt động;
  4. cột wa biểu thị tỷ lệ phần trăm thời gian CPU bị chiếm dụng bởi IO đang chờ. Giá trị wa càng cao thì thời gian chờ IO càng nghiêm trọng. Nếu giá trị wa vượt quá 20%, điều đó có nghĩa là thời gian chờ IO rất nghiêm trọng .
  5. cột thứ nhất nói chung không phải là vấn đề đáng quan tâm, phần trăm thời gian mà máy ảo chiếm dụng.

2. Giám sát CPU

2.1  Lệnh HÀNG ĐẦU

Lệnh trên cùng là một công cụ phân tích hiệu suất thường được sử dụng trong Linux, có thể hiển thị mức sử dụng tài nguyên và trạng thái tổng thể của từng quy trình trong hệ thống theo thời gian thực. Kết quả chạy như sau:

Mô tả tham số liên quan:

Hàng đầu tiên:

  1. 14:36:09: Đây là thời gian hệ thống trong quá trình kiểm tra wzfou.com
  2. up xxx ngày, 11:13: Thời gian chạy hệ thống, hệ thống đã chạy được xx ngày, 11 giờ 13 phút.
  3. 2 người dùng: Số lượng người dùng hiện đang đăng nhập
  4. tải trung bình: tải hệ thống, nghĩa là độ dài trung bình của hàng đợi tác vụ. Ba giá trị lần lượt là tải trung bình trong phút cuối, 5 phút cuối và 15 phút cuối - vượt quá N (số lõi CPU), cho biết hệ thống đang chạy đầy tải . Bạn cũng có thể xem mức tải trung bình thông qua lệnh $w hoặc $uptime.

dòng thứ hai:

  1. Hiển thị tổng số tiến trình, số tiến trình đang chạy, số tiến trình không hoạt động, số tiến trình đã dừng và số lượng tiến trình zombie

Hàng thứ ba:

  1. %us: Phần trăm CPU được tiêu thụ bởi tiến trình người dùng
  2. %sy: Phần trăm CPU được tiêu thụ bởi tiến trình kernel
  3. %ni: Phần trăm CPU bị chiếm dụng bởi các tiến trình đã thay đổi mức độ ưu tiên của chúng
  4. %id: Phần trăm CPU nhàn rỗi
  5. %wa: Phần trăm CPU tiêu thụ khi chờ IO

Lệnh 2.2  mpstat

mpstat (Thống kê đa bộ xử lý, thống kê đa bộ xử lý) là công cụ giám sát hệ thống thời gian thực báo cáo thông tin thống kê liên quan đến CPU, được lưu trữ trong tệp /proc/stat. Định dạng: mpstat -P ALL 2 # ALL có nghĩa là hiển thị tất cả các CPU hoặc bạn có thể chỉ định một CPU nhất định; 2 có nghĩa là khoảng thời gian làm mới.

Hiệu ứng lệnh như sau:

3. Giám sát mạng

3.1  lệnh sar

SAR là lệnh được sử dụng trong hệ điều hành Unix và Linux để thu thập, báo cáo và lưu việc sử dụng CPU, bộ nhớcổng đầu vào và đầu ra. Lệnh SAR có thể tạo báo cáo động hoặc lưu báo cáo vào tệp nhật ký. Định dạng lệnh: sar -n DEV 3 100. Hiệu quả như sau:

Các thông số liên quan được giải thích như sau:

IFACE: tên của thiết bị mạng

rxpck/s: Số gói nhận được mỗi giây

txpck/s: Số lượng gói tin được gửi mỗi giây

rxkB/s: Số byte nhận được mỗi giây

txkB/s: Số byte được gửi mỗi giây

3.2  trạng thái mạng

Lệnh netstat thường được sử dụng để kiểm tra kết nối mạng của từng cổng của máy và hiển thị số liệu thống kê liên quan đến giao thức IP, TCP, UDP và ICMP.

Chọn một số tùy chọn như sau:

-a, --all, --listening     显示所有连接中的Socket。
-n, --numeric 以数字形式显示地址和端口号。
-t, -–tcp 显示TCP传输协议的连线状况。
-u, -–udp 显示UDP传输协议的连线状况。
-p, --programs 显示正在使用socket的程序名/进程ID
-l, --listening 显示监控中的服务器的Socket。
-o, --timers 显示计时器。
-s, --statistics 显示每个网络协议的统计信息(比如SNMP)
-i, --interfaces 显示网络界面信息表单(网卡列表)
-r, --route 显示路由表

Những cái thường được sử dụng:

$ netstat -aup        # 输出所有UDP连接状况
$ netstat -atp # 输出所有TCP连接状况
$ netstat -s # 显示各个协议的网络统计信息
$ netstat -i # 显示网卡列表
$ netstat -r # 显示路由表信息

netstat rất hữu ích trong việc phòng thủ trước các cuộc tấn công. Một ví dụ thường được wzfou.com sử dụng như sau:

netstat -n -p|grep SYN_REC | wc -l

Lệnh trên có thể tìm hiểu xem máy chủ hiện tại có bao nhiêu kết nối SYNC_REC đang hoạt động. Thông thường, giá trị này rất nhỏ, tốt nhất là nhỏ hơn 5. Khi có các cuộc tấn công DoS hoặc bom thư, giá trị này khá cao. Ngoài ra, giá trị này liên quan nhiều đến hệ thống. Một số máy chủ có giá trị rất cao, điều này là bình thường.

netstat -n -p | grep SYN_REC | sort -u

Lệnh trên có thể liệt kê tất cả các địa chỉ IP được kết nối.

netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'

    Lệnh trên có thể liệt kê địa chỉ IP của tất cả các nút gửi kết nối SYN_REC.

    netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

    Lệnh trên có thể sử dụng lệnh netstat để tính toán số lượng kết nối từ mỗi máy chủ đến máy cục bộ.

    netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

    Lệnh trên có thể liệt kê số IP của tất cả các kết nối UDP hoặc TCP được kết nối với máy này.

    netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

    Lệnh trên kiểm tra các kết nối THÀNH LẬP và liệt kê số lượng kết nối trên mỗi địa chỉ IP.

    netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1

    Lệnh trên có thể liệt kê tất cả các địa chỉ IP được kết nối với cổng 80 của máy này và số lượng kết nối của chúng. Cổng 80 thường được sử dụng để xử lý các yêu cầu trang web HTTP.

    Để chống lại các cuộc tấn công của CC, bạn cũng có thể sử dụng các phương pháp sau để phát hiện:

    Xem số lượng kết nối của tất cả cổng 80

    1. netstat -nat|grep -i "80"|wc -l

    Sắp xếp IP được kết nối theo số lượng kết nối

    1. netstat -anp | grep ‘tcp|udp’ | awk ‘{print $5}’ | cut -d: -f1 | sắp xếp
    2. netstat -ntu | awk ‘{print $5}’ |
    3. netstat -ntu | awk '{print $5}' | egrep -o "[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[ 0-9]{1,3}" | sắp xếp | uniq -c | sắp xếp -nr

    Xem trạng thái kết nối TCP

    1. netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn
    2. netstat -n | awk ‘/^tcp/ {print $NF}’|sort|uniq -c|sort -rn
    3. netstat -n | awk ‘/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}’
    4. netstat -n | awk ‘/^tcp/ {++state[$NF]}; END {for(key in state) print key,”t”,state[key]}’
    5. netstat -n | awk ‘/^tcp/ {++arr[$NF]};END {for(k in arr) print k,”t”,arr[k]}’
    6. netstat -ant | awk ‘{print $NF}’ |

    Xem 20 IP có nhiều kết nối nhất trên cổng 80

    1. cat /www/web_logs/wzfou.com_access.log|awk ‘{print $1}’|sort|uniq -c|sort -nr|head -100
    2. tail -n 10000 /www/web_logs/wzfou.com_access.log|awk ‘{print $1}’|sort|uniq -c|sort -nr|head -100
    3. cat /www/web_logs/wzfou.com_access.log|awk ‘{print $1}’|sort|uniq -c|sort -nr|head -100
    4. netstat -anlp|grep 80|grep tcp|awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -nr|head -n20
    5. netstat -ant |awk '/:80/{split($5,ip, John);++A[ip[1]]}END{for(i in A) print A,i}' |sort -rn |đầu -n20

    Dùng tcpdump để sniff port 80 access xem ai cao nhất

    1. tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F”.” '{print $1″.”$2″.”$3″.”$4}' | sắp xếp uniq -c | 20

    Tìm thêm kết nối time_wait

    1. netstat -n|grep TIME_WAIT|awk ‘{print $5}’|sort|uniq -c|sort -rn|head -n20

    Tìm thêm kết nối SYN

    1. netstat -an | grep SYN | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sắp xếp uniq -c |

    Một số lệnh phổ biến để sử dụng iptables để chặn phân đoạn IP trong Linux:

    Lệnh chặn một IP là:

    1. iptables -I INPUT -s 211.1.0.0 -j THẢ

    Lệnh chặn một đoạn IP là:

    1. iptables -I INPUT -s 211.1.0.0/16 -j THẢ
    2. iptables -I INPUT -s 211.2.0.0/16 -j THẢ
    3. iptables -I INPUT -s 211.3.0.0/16 -j THẢ

    Lệnh niêm phong toàn bộ phần là:

    1. iptables -I INPUT -s 211.0.0.0/8 -j THẢ

    Lệnh đóng dấu một số đoạn văn là:

    1. iptables -I INPUT -s 61.37.80.0/24 -j DROP
    2. iptables -I INPUT -s 61.37.81.0/24 -j DROP

    3.3  lệnh tcpdump

    Tcpdump là một trong những chương trình phân tích gói mạng hoặc chương trình giám sát gói được sử dụng rộng rãi nhất. Nó được sử dụng để thu thập hoặc lọc các gói TCP/IP được nhận hoặc truyền trên các giao diện được chỉ định trên mạng. Định dạng: tcpdump -i eth0 -c 3

    Lệnh này không đi kèm với hệ thống và bạn có thể phải tự cài đặt nó. Hiệu quả thực hiện lệnh như sau:

    3.4  IPTraf

    iptraf là trình giám sát IP LAN dựa trên ncurses, được sử dụng để tạo dữ liệu thống kê bao gồm thông tin TCP, số lượng UDP, thông tin ICMP và OSPF, thông tin tải Ethernet, thông tin trạng thái nút, lỗi tổng kiểm tra IP, v.v. Thống kê giao diện đơn giản và chi tiết, bao gồm IP, TCP, UDP, ICMP, non-IP và số lượng gói IP khác, lỗi tổng kiểm tra IP, hoạt động giao diện và số lượng kích thước gói.

    Định dạng lệnh: iptraf. Sau đó, một số menu giám sát sẽ được hiển thị với các hiệu ứng sau:

    4. Giám sát đĩa

    Lệnh 4.1  df

    Chức năng của lệnh df là kiểm tra mức sử dụng dung lượng ổ đĩa của hệ thống tệp Linux. Nếu không có tên tệp nào được chỉ định, tất cả các hệ thống tệp hiện được gắn sẽ được hiển thị, tính bằng KB theo mặc định. Định dạng thường dùng: $ df -h. Hiệu quả như sau:

    Các thông số liên quan được giải thích như sau:

    -a  Danh sách tất cả các hệ thống tập tin

    -h  hiển thị ở dạng người có thể đọc được

    -i Hiển thị thông tin inode

    -T  hiển thị loại hệ thống tập tin

    -l  Chỉ hiển thị các hệ thống tệp cục bộ

    -k  tính bằng KB

    -m  tính bằng MB

    4.2  lệnh iostat

    iostat là một công cụ đơn giản để thu thập và hiển thị số liệu thống kê về trạng thái đầu vào và đầu ra của các thiết bị lưu trữ hệ thống. Công cụ này thường được sử dụng để theo dõi các vấn đề về hiệu suất với các thiết bị lưu trữ, bao gồm thiết bị, ổ đĩa cục bộ và ổ đĩa từ xa như sử dụng NFS. Các định dạng thường được sử dụng:

    $ iostat -x -k 2 100        # 2表示刷新间隔,100表示刷新次数

    Hiệu quả như sau:

    iostat chủ yếu được sử dụng để giám sát I/O đĩa. Đầu tiên, nó xuất ra dữ liệu trung bình của CPU (avg-cpu). Chúng ta có thể thấy mục %iowait. Một số dữ liệu trạng thái I/O chi tiết hơn cũng được cung cấp, chẳng hạn như:

    r/s: Số lần đọc từ thiết bị I/O được hoàn thành mỗi giây.

    w/s: Số lần ghi vào thiết bị I/O được hoàn thành mỗi giây.

    rkB/s: Số K byte được đọc mỗi giây. Nó bằng một nửa rsect/s vì kích thước của mỗi cung là 512 byte.

    wkB/s: Số lượng K byte được ghi mỗi giây. Nó bằng một nửa wsect/s.

    avgrq-sz: Kích thước dữ liệu trung bình (cung) trên mỗi thao tác I/O của thiết bị.

    avgqu-sz: Độ dài hàng đợi I/O trung bình.

    đang chờ: thời gian chờ trung bình (mili giây) cho mỗi thao tác I/O của thiết bị.

    svctm: Thời gian dịch vụ trung bình (mili giây) cho mỗi thao tác I/O của thiết bị.

    %util: Bao nhiêu phần trăm của một giây được sử dụng cho các thao tác I/O hoặc bao nhiêu phần trăm của một giây hàng đợi I/O không trống.

    4.3  lệnh iotop

    Lệnh iotop là công cụ hàng đầu được sử dụng để giám sát việc sử dụng I/O của đĩa. iotop có giao diện người dùng tương tự top, bao gồm PID, người dùng, I/O, quy trình và các thông tin liên quan khác. Hầu hết các công cụ thống kê IO trong Linux, chẳng hạn như iostat và nmon, chỉ có thể đếm số lần đọc và ghi của mỗi thiết bị. Nếu muốn biết từng tiến trình sử dụng IO như thế nào thì sẽ rất rắc rối. kiểm tra nó một cách dễ dàng.

    Các thông số thường dùng của iotop như sau:

    –version Xem số phiên bản chương trình
    -h, –help Xem thông tin trợ giúp
    -o, –only Chỉ xem các tiến trình có thao tác IO
    -b, –batch chế độ không tương tác
    -n, – iter= Đặt số lần lặp
    -d, –delay tần số làm mới, mặc định là 1 giây
    -p, –pid xem IO của số tiến trình đã chỉ định, mặc định là tất cả các tiến trình
    -u , –user xem IO được chỉ định của các tiến trình người dùng, mặc định là tất cả người dùng
    -P, –processes chỉ xem xét các tiến trình, không phải các luồng
    -a, –accumulated xem xét IO tích lũy, không phải IO thời gian thực
    -k, –kilobytes trong KB Xem IO theo đơn vị thay vì hiển thị nó theo đơn vị thân thiện nhất.

    Hiệu quả thực hiện như sau:

    Lệnh 4.4  lsof

    Liệt kê các tập tin đang mở: lsof. Nó thường được sử dụng để hiển thị tất cả các tệp và quy trình đang mở trong danh sách. Các tệp mở bao gồm tệp đĩa, ổ cắm mạng, đường ống, thiết bị và quy trình. Một trong những tình huống chính cần sử dụng lệnh này là khi không thể gắn đĩa và hiển thị thông báo lỗi rằng một tệp đang được sử dụng hoặc mở. Sử dụng lệnh này bạn có thể dễ dàng xem tập tin nào đang được sử dụng.

    5. Giám sát quá trình

    5.1  lệnh aTOP

    Lệnh atop là lệnh giám sát môi trường đầu cuối. Nó hiển thị sự kết hợp của nhiều tài nguyên hệ thống khác nhau (CPU, bộ nhớ, mạng, I/O, kernel) và được mã hóa màu trong điều kiện tải cao. atop có thể được coi là phiên bản nâng cao của top. Nếu lệnh atop cho thấy nó không tồn tại, bạn cần yum hoặc apt-get để cài đặt nó. Hiệu quả như sau:

    Mô tả tham số liên quan:

    Cột ATOP : Cột này hiển thị tên máy chủ, ngày lấy mẫu thông tin và thời điểm

    Cột PRC: Cột này hiển thị trạng thái hoạt động tổng thể của quy trình

    1. Các trường sys và usr lần lượt cho biết thời gian chạy của tiến trình ở chế độ kernel và chế độ người dùng.
    2. Trường #proc cho biết tổng số quy trình
    3. Trường #zombie cho biết số lượng tiến trình zombie
    4. Trường #exit cho biết số lượng quy trình đã thoát trong khoảng thời gian lấy mẫu trên cùng

    Cột CPU : Cột này hiển thị mức sử dụng của toàn bộ CPU (tức là CPU đa lõi dưới dạng toàn bộ tài nguyên CPU). trạng thái nhàn rỗi (trạng thái nhàn rỗi được chia thành hai loại, một loại là quá trình hoạt động đang chờ đĩa IO và CPU không hoạt động, loại còn lại là nó hoàn toàn không hoạt động)

    1. Các trường sys và usr cho biết tỷ lệ thời gian CPU bị chiếm bởi tiến trình ở chế độ kernel và chế độ người dùng khi CPU được sử dụng để xử lý tiến trình.
    2. Trường irq cho biết tỷ lệ thời gian CPU được sử dụng để xử lý các ngắt
    3. Trường nhàn rỗi cho biết tỷ lệ thời gian CPU hoàn toàn không hoạt động.
    4. Trường chờ cho biết tỷ lệ thời gian CPU ở trạng thái "quá trình chờ đĩa IO khiến CPU không hoạt động"

    Tổng các giá trị được chỉ định trong từng trường của cột CPU cho kết quả là N00%, trong đó N là số lõi CPU.

    cột cpu : Cột này hiển thị mức sử dụng của một CPU lõi nhất định. Ý nghĩa của từng trường có thể tham chiếu đến cột CPU. Tổng giá trị của mỗi trường là 100%.

    Cột CPL: Cột này hiển thị tải CPU

    1. Các trường avg1, avg5 và avg15: số lượng quy trình trung bình trong hàng đợi chạy trong 1, 5 và 15 phút qua
    2. Trường csw cho biết số lần hoán đổi ngữ cảnh
    3. Trường intr cho biết số lần xuất hiện ngắt

    Cột MEM: Cột này cho biết mức sử dụng bộ nhớ

    1. Trường tot cho biết tổng dung lượng bộ nhớ vật lý
    2. Trường trống cho biết kích thước của bộ nhớ trống
    3. Trường bộ đệm cho biết kích thước bộ nhớ được sử dụng để lưu vào bộ đệm trang
    4. Trường buff cho biết kích thước bộ nhớ được sử dụng để lưu vào bộ nhớ đệm tệp
    5. Trường bản sàn cho biết kích thước bộ nhớ mà nhân hệ thống chiếm giữ.

    Cột SWP: Cột này cho biết mức sử dụng không gian trao đổi

    1. Trường tot cho biết tổng diện tích trao đổi
    2. Trường trống cho biết kích thước của không gian trao đổi trống

    Cột PAG : Cột này biểu thị trạng thái phân trang bộ nhớ ảo

    trường swin, swout: số trang bộ nhớ được hoán đổi vào và ra

    Cột DSK : Cột này cho biết mức sử dụng đĩa. Mỗi thiết bị đĩa tương ứng với một cột. Nếu có thiết bị sdb thì một cột thông tin DSK bổ sung sẽ được thêm vào.

    1. trường sda: nhận dạng thiết bị đĩa
    2. Trường bận: tỷ lệ bận của đĩa
    3. trường đọc, ghi: số lượng yêu cầu đọc và ghi

    Cột NET : Nhiều cột NET hiển thị trạng thái mạng, bao gồm lớp vận chuyển (TCP và UDP), lớp IP và thông tin từng cổng mạng đang hoạt động

    1. Trường XXXi  cho biết số lượng gói nhận được bởi mỗi lớp hoặc cổng mạng đang hoạt động.
    2. Trường XXXo cho biết số lượng gói được gửi bởi mỗi lớp hoặc cổng mạng đang hoạt động

    5.2  lệnh htop

    htop là một công cụ giám sát quy trình Linux thời gian thực tương tác rất tiên tiến. Nó rất giống với lệnh top, nhưng nó có các tính năng phong phú hơn, chẳng hạn như quản lý quy trình thân thiện với người dùng, phím tắt, hiển thị các quy trình theo chiều dọc và chiều ngang, v.v.

    Hiệu ứng lệnh như sau:

    Lệnh 5.3  ps

    ps (Trạng thái tiến trình, trạng thái tiến trình) Lệnh là lệnh xem tiến trình cơ bản nhất và rất mạnh mẽ. Lệnh được sử dụng phổ biến nhất là ps aux - hiển thị tất cả các tiến trình hiện tại.

    $ ps aux | grep root       # 输出root用户的所有进程
    $ ps -p <pid> -L # 显示进程<pid>的所有线程
    $ ps -e -o pid,uname,pcpu,pmem,comm # 定制显示的列
    $ ps -o lstart <pid> # 显示进程的启动时间

    Đầu ra của lệnh ps có thể được sắp xếp theo bất kỳ cột nào bằng cách sử dụng khóa sắp xếp bên trong (bí danh của cột), ví dụ:

    $ ps aux --sort=+rss         # 按内存升序排列
    $ ps aux --sort=-rss # 按内存降序排列
    $ ps aux --sort=+%cpu # 按cpu升序排列
    $ ps aux --sort=-%cpu # 按cpu降序排列

    6. Công cụ giám sát hệ thống tất cả trong một

    Các công cụ được chia sẻ ở trên đều là những công cụ đơn lẻ để xem đĩa hệ thống Linux, CPU, bộ nhớ và các chỉ số khác. Nếu muốn nhanh chóng tìm ra điểm nghẽn về hiệu suất của máy chủ VPS, chúng ta có thể sử dụng các công cụ “tất cả trong một” sau:

    Công cụ liếc nhìn 6.1 

    Glances là phần mềm miễn phí được cấp phép GPL dùng để giám sát các hệ điều hành GNU/Linux và FreeBSD. Thông qua Glances, chúng tôi có thể giám sát CPU, mức tải trung bình, bộ nhớ, lưu lượng truy cập mạng, I/O ổ đĩa, các bộ xử lý khác và tình trạng sử dụng không gian hệ thống tệp. Đây là những gì wzfou.com sử dụng để theo dõi. Cú pháp: liếc nhìn

    Liếc nhìn sẽ sử dụng các màu sau để biểu thị trạng thái: Xanh lục: OK (mọi thứ đều bình thường) Xanh lam: CẨN THẬN (cần chú ý) Tím: CẢNH BÁO (cảnh báo) Đỏ: TUYỆT VỜI (nghiêm trọng). Ngưỡng có thể được đặt trong tệp cấu hình. Nói chung, ngưỡng được đặt thành (careful=50, Warning=70, Critical=90) theo mặc định. Hiệu ứng như sau: (bấm vào để phóng to)

    Glances cũng cung cấp thêm các phím tắt có thể chuyển đổi các tùy chọn thông tin đầu ra khi nó đang chạy, ví dụ:

    a – Tự động sắp xếp các tiến trình

    c – Sắp xếp các tiến trình theo tỷ lệ phần trăm CPU

    m – Sắp xếp các tiến trình theo phần trăm bộ nhớ

    p – Sắp xếp các tiến trình theo thứ tự abc theo tên tiến trình

    i – Sắp xếp các tiến trình theo tần số đọc và ghi (I/O)

    d – Hiển thị/ẩn thống kê I/O của đĩa

    f – Hiển thị/ẩn số liệu thống kê hệ thống tập tin

    n – Hiển thị/ẩn số liệu thống kê giao diện mạng

    s – Hiển thị/ẩn số liệu thống kê cảm biến

    y – Hiển thị/ẩn số liệu thống kê nhiệt độ ổ cứng

    l - hiển thị/ẩn nhật ký (log)

    b – Chuyển đổi đơn vị I/O mạng (Byte/bit)

    w – xóa nhật ký cảnh báo

    x – Xóa nhật ký cảnh báo và quan trọng

    1 – Chuyển đổi giữa mức sử dụng CPU chung và mức sử dụng trên mỗi CPU

    h – Hiển thị/ẩn màn hình trợ giúp này

    t – Duyệt I/O mạng theo nhóm

    u – Duyệt I/O mạng ở dạng tích lũy

    q – Thoát ('ESC' và 'Ctrl&C' cũng hoạt động)

    6.2  công cụ dstat

    Lệnh dstat là một công cụ được sử dụng để thay thế các lệnh vmstat, iostat, netstat, nfsstat và ifstat. Đây là một công cụ thống kê thông tin hệ thống toàn diện. So với sysstat, dstat có giao diện đầy màu sắc. Khi quan sát các điều kiện hiệu suất theo cách thủ công, dữ liệu sẽ dễ thấy và dễ quan sát hơn; được làm mới mỗi giây chương trình.

    Sử dụng trực tiếp dstat. Tham số -cdngy được sử dụng theo mặc định để hiển thị thông tin về cpu, đĩa, mạng, trang và hệ thống tương ứng. Bạn có thể chỉ định khoảng thời gian để hiển thị một phần thông tin ở cuối. Ví dụ: dstat 5 có nghĩa là một phần thông tin sẽ được hiển thị cứ sau 5 giây và dstat 5 10 có nghĩa là cứ sau 5 giây lại có một phần thông tin. Tổng cộng có 10 thông tin sẽ được hiển thị. như sau:

    Mô tả thông tin được hiển thị theo đầu ra mặc định:

    Quy trình

    1. r: Số lượng tiến trình đang chạy và chờ (lát thời gian của CPU) Giá trị này cũng có thể được sử dụng để xác định xem CPU có cần được tăng lên hay không (lớn hơn 1 trong thời gian dài).
    2. b: Số lượng tiến trình ở trạng thái không bị gián đoạn. Các tình huống thường gặp là do IO gây ra.

    Ký ức

    1. swpd: Chuyển sang bộ nhớ trên bộ nhớ trao đổi (mặc định bằng KB). Nếu giá trị của swpd không phải là 0 hoặc tương đối lớn, chẳng hạn như hơn 100M, nhưng các giá trị của si và như vậy đã bằng 0 trong một thời gian dài, thì chúng ta không cần phải lo lắng về tình huống này, và nó sẽ không ảnh hưởng đến hiệu suất hệ thống.
    2. miễn phí: bộ nhớ vật lý miễn phí
    3. buff: dùng làm bộ nhớ đệm đệm, đệm việc đọc và ghi của các thiết bị khối
    4. cache: bộ nhớ dưới dạng bộ đệm trang, bộ đệm hệ thống tệp. Nếu giá trị bộ đệm lớn, điều đó có nghĩa là có nhiều tệp trong bộ đệm. Nếu các tệp được truy cập thường xuyên có thể được lưu vào bộ đệm, IO bi đọc của đĩa sẽ rất nhỏ.

    Tráo đổi

    1. si: Hoán đổi việc sử dụng bộ nhớ, chuyển vào bộ nhớ từ đĩa
    2. so: Trao đổi cách sử dụng bộ nhớ, chuyển từ bộ nhớ sang đĩa

    Khi có đủ bộ nhớ, hai giá trị này​​​đều bằng 0. Nếu hai giá trị này​​​lớn hơn 0 trong thời gian dài, hiệu năng hệ thống sẽ bị ảnh hưởng. Tài nguyên CPU và IO của đĩa sẽ bị tiêu hao.

    Mình thấy một số bạn cho rằng bộ nhớ không đủ khi thấy bộ nhớ trống (free) rất nhỏ hoặc gần bằng 0. Thực ra thì không thể chỉ nhìn cái này mà còn phải kết hợp si vân vân nếu có. free rất ít, nhưng si, Cũng có rất ít nên (hầu hết là 0), nên đừng lo, hiệu năng hệ thống sẽ không bị ảnh hưởng lúc này.

    Đĩa IO

    1. bi: Tổng lượng dữ liệu được đọc từ thiết bị khối (đĩa đọc) (KB/s)
    2. bo: Tổng lượng dữ liệu được ghi vào thiết bị khối (ghi vào đĩa) (KB/s)

    Lưu ý: Khi đọc và ghi các đĩa ngẫu nhiên, hai giá trị càng lớn (chẳng hạn như vượt quá 1M) thì giá trị mà CPU đang chờ trong IO sẽ càng lớn.

    Hệ thống

    1. in: Số lượng ngắt được tạo ra mỗi giây
    2. cs: số lần chuyển ngữ cảnh mỗi giây

    Hai giá trị trên càng lớn thì bạn sẽ thấy kernel tiêu tốn càng nhiều thời gian CPU.

    CPU

    1. usr: Phần trăm thời gian CPU được sử dụng bởi tiến trình người dùng

    Khi giá trị của us tương đối cao, có nghĩa là tiến trình của người dùng tiêu tốn rất nhiều thời gian của CPU, nhưng nếu vượt quá mức sử dụng 50% trong một thời gian dài thì chúng ta nên xem xét tối ưu hóa thuật toán chương trình hoặc tăng tốc (chẳng hạn như PHP/Perl)

    1. sys: Phần trăm thời gian CPU được tiêu thụ bởi tiến trình kernel

    Khi giá trị của sys cao, điều đó có nghĩa là nhân hệ thống tiêu tốn nhiều tài nguyên CPU. Đây không phải là hiệu suất lành tính và chúng ta nên kiểm tra lý do.

    1. wai: phần trăm thời gian CPU tiêu tốn cho việc chờ IO

    Khi giá trị của wa cao, điều đó có nghĩa là quá trình chờ IO đang diễn ra nghiêm trọng. Điều này có thể do một số lượng lớn truy cập ngẫu nhiên trên đĩa gây ra hoặc có thể là do tắc nghẽn (hoạt động chặn) trong băng thông của đĩa.

    1. idl: phần trăm thời gian CPU không hoạt động

    7. Tóm tắt

    Đối với các lệnh trên, một số lệnh đi kèm với hệ thống Linux và bạn có thể thực thi chúng trực tiếp. Một số là lệnh của bên thứ ba, nhưng hầu hết chúng có thể được cài đặt trực tiếp thông qua Yum install xxx hoặc apt-get intall xxx để cài đặt . Mặc dù các lệnh này nhỏ nhưng chúng sẽ đặc biệt hữu ích khi có sự cố phát sinh trên máy chủ của chúng tôi.

    Để khắc phục sự cố máy chủ, nhìn chung chúng ta cần kết hợp nhiều chỉ báo để phân tích và phán đoán toàn diện. Ví dụ: nếu bạn nghi ngờ có vấn đề với việc đọc và ghi IO của máy chủ VPS, bạn có thể sử dụng iotop để kiểm tra tốc độ đọc và ghi theo thời gian thực và sử dụng lệnh top để kiểm tra tiến trình nào chiếm CPU và bộ nhớ. Bằng cách này, bạn có thể nhận được kết quả chính xác bằng cách kết hợp nhiều dữ liệu.

    Để lại một câu trả lời