Cách sử dụng Top, Netstat, Du và các công cụ khác để giám sát tài nguyên server
Làm thế nào để bạn giám sát tình trạng hệ thống của bạn?
Mọi hệ thống máy tính đều được hưởng lợi từ việc quản lý và giám sát thích hợp. Theo dõi cách hệ thống của bạn đang chạy sẽ giúp bạn phát hiện ra các vấn đề và giải quyết chúng một cách nhanh chóng.
Có rất nhiều tiện ích dòng lệnh được tạo ra cho mục đích này. Hướng dẫn này sẽ giới thiệu cho bạn một số ứng dụng hữu ích nhất cần có trong hộp công cụ của bạn.
Mục lục
- Làm cách nào để giám sát việc sử dụng quy trình?
- Làm cách nào để biết chương trình nào đang sử dụng băng thông của tôi?
- Làm cách nào để biết tôi còn bao nhiêu dung lượng đĩa?
- Làm cách nào để biết được bộ nhớ của tôi đang được sử dụng như thế nào?
- Kết luận
Làm cách nào để giám sát việc sử dụng quy trình?
hàng đầu
Một trong những công cụ phổ biến nhất để kiểm tra việc sử dụng tài nguyên của các quy trình là " top ".
Top cung cấp một bảng đơn giản, thời gian thực về các quy trình của bạn, với những người tiêu dùng lớn nhất ở trên:
top
top - 14:45:52 up 29 min, 1 user, load average: 0.10, 0.09, 0.06 Tasks: 56 total, 1 running, 55 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1019600k total, 393756k used, 625844k free, 11136k buffers Swap: 0k total, 0k used, 0k free, 316748k cached PID %MEM VIRT SWAP RES CODE DATA SHR nFLT nDRT S PR NI %CPU COMMAND 832 1.3 32364 18m 12m 896 11m 1688 1 0 S 20 0 0.0 bash 820 0.4 89456 83m 4008 488 948 3040 12 0 S 20 0 0.0 sshd 812 0.3 49948 46m 2828 488 616 2216 0 0 S 20 0 0.0 sshd 1 0.2 24192 21m 2108 152 868 1300 23 0 S 20 0 0.0 init 400 0.1 243m 242m 1420 344 216m 1084 0 0 S 20 0 0.0 rsyslogd
Phần trên cùng có một số thống kê hệ thống, bao gồm mức trung bình tải trong phút qua, 5 phút và 15 phút. Nó cũng hiển thị mức sử dụng bộ nhớ và swap cũng như số lượng các trạng thái quy trình khác nhau.
Phần dưới cùng có mọi quy trình trên hệ thống, được tổ chức bởi những người sử dụng tài nguyên hàng đầu. Danh sách này được cập nhật theo thời gian thực.
htop
Mặc dù "top" có trong hầu hết mọi bản phân phối theo mặc định, một version cải tiến, được gọi là " htop " có sẵn để download từ hầu hết các kho.
Để cài đặt htop trên Ubuntu, hãy nhập như sau:
sudo apt-get install htop
Chạy htop, ta có thể thấy rằng nó có một kết quả tương tự, nhưng được tô màu và tương tác hơn:
htop
CPU[| 0.7%] Tasks: 21, 3 thr; 1 running Mem[||||||||||||| 64/995MB] Load average: 0.00 0.02 0.05 Swp[ 0/0MB] Uptime: 00:37:37 PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command 2752 root 20 0 25660 1876 1364 R 0.0 0.2 0:00.06 htop 1 root 20 0 24192 2108 1300 S 0.0 0.2 0:00.55 /sbin/init 312 root 20 0 17224 640 444 S 0.0 0.1 0:00.04 upstart-udev-brid 314 root 20 0 21592 1360 760 S 0.0 0.1 0:00.04 /sbin/udevd --dae 394 messagebu 20 0 23808 688 436 S 0.0 0.1 0:00.01 dbus-daemon --sys 401 syslog 20 0 243M 1420 1084 S 0.0 0.1 0:00.07 rsyslogd -c5 402 syslog 20 0 243M 1420 1084 S 0.0 0.1 0:00.00 rsyslogd -c5
Phần trên cùng dễ đọc hơn nhiều và phần dưới cùng được sắp xếp theo kiểu rõ ràng hơn.
Dưới đây là một số key sẽ giúp bạn sử dụng htop hiệu quả hơn:
- M : Sắp xếp các quy trình theo mức sử dụng bộ nhớ
- P : Sắp xếp các quy trình theo cách sử dụng bộ xử lý
- ? : Truy cập trợ giúp
- k : Hủy quy trình hiện tại / được gắn thẻ
- F2 : Cài đặt htop. Bạn có thể chọn các tùy chọn hiển thị tại đây.
- / : Quy trình tìm kiếm
Có rất nhiều tùy chọn khác mà bạn có thể truy cập thông qua trợ giúp hoặc cài đặt . Đây sẽ là những điểm dừng đầu tiên của bạn trong việc khám phá chức năng của htop.
Làm cách nào để biết chương trình nào đang sử dụng băng thông của tôi?
nethogs
Nếu kết nối mạng của bạn có vẻ bão hòa và bạn không chắc ứng dụng nào là thủ phạm, một chương trình có tên " nethogs " là một lựa chọn tốt để tìm hiểu.
Trên Ubuntu, bạn có thể cài đặt nethogs bằng lệnh sau:
sudo apt-get install nethogs
Ta có thể chạy nó bằng lệnh :
nethogs
NetHogs version 0.8.0 PID USER PROGRAM DEV SENT RECEIVED 3379 root /usr/sbin/sshd eth0 0.485 0.182 KB/sec 820 root sshd: root@pts/0 eth0 0.427 0.052 KB/sec ? root unknown TCP 0.000 0.000 KB/sec TOTAL 0.912 0.233 KB/sec
Như bạn thấy , trên hết, kết quả nethogs rất đơn giản. Nó liên kết từng ứng dụng với lưu lượng mạng liên quan của nó.
Chỉ có một số lệnh mà bạn có thể sử dụng để kiểm soát lợn ròng:
- m : Thay đổi hiển thị giữa "kb / s", "kb", "b" và "mb".
- r : Sắp xếp theo lưu lượng nhận được.
- s : Sắp xếp theo lưu lượng gửi.
- q : bỏ
Mặc dù đây là một công cụ đơn giản, nethogs là một cách tốt để liên kết lưu lượng truy cập với một ứng dụng cụ thể.
IPTraf
IPTraf là một cách tốt khác để giám sát lưu lượng mạng. Nó cung cấp một số giao diện giám sát tương tác khác nhau.
Trên Ubuntu, bạn có thể cài đặt IPTraf bằng lệnh sau:
sudo apt-get install iptraf
Để chạy chương trình, chỉ cần gọi nó từ dòng lệnh với quyền root:
sudo iptraf
??????????????????????????????????? ? IP traffic monitor ? ? General interface statistics ? ? Detailed interface statistics ? ? Statistical breakdowns... ? ? LAN station monitor ? ??????????????????????????????????? ? Filters... ? ??????????????????????????????????? ? Configure... ? ??????????????????????????????????? ? Exit ? ???????????????????????????????????
Với menu này, bạn có thể chọn giao diện bạn muốn truy cập.
Ví dụ, để có cái nhìn tổng quan về tất cả lưu lượng mạng, ta có thể chọn menu đầu tiên và sau đó chọn "Tất cả giao diện". Nó sẽ cung cấp cho bạn một màn hình như sau:
IPTraf ? TCP Connections (Source Host:Port) ?????????? Packets ??? Bytes Flags Iface ? ??192.241.xxx.xxx:22 > 369 82420 -PA- eth0 ? ??72.43.xxx.xxx:49488 > 381 19860 --A- eth0 ? ? ? ? ?
Tại đây, bạn có thể xem địa chỉ IP nào bạn đang giao tiếp trên tất cả các network interface của bạn .
Nếu bạn muốn các địa chỉ IP đó được phân giải thành các domain , bạn có thể bật tra cứu DNS ngược bằng cách thoát khỏi màn hình lưu lượng, chọn " Cấu hình " và sau đó chọn " Tra cứu DNS ngược ".
Bạn cũng có thể bật " Tên dịch vụ TCP / UDP " để hiển thị bằng cách sử dụng tên của dịch vụ thay vì cổng.
Khi bật cả hai tùy chọn này, màn hình có thể trông như thế này:
TCP Connections (Source Host:Port) ?????????? Packets ??? Bytes Flags Iface ? ??192.241.xxx.xxx:ssh > 151 34924 -PA- eth0 ? ??rrcs-72-43-xxx-xxx.nyc.biz.rr.co:49488 > 155 8108 --A- eth0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TCP: 1 entries ???????????????????????????????????????????????? Active ?? ???????????????????????????????????????????????????????????????????????????????? ? UDP (72 bytes) from 192.241.xxx.xxx:43463 to 8.8.8.8:domain on eth0 ? ? UDP (66 bytes) from 192.241.xxx.xxx:53140 to 8.8.8.8:domain on eth0 ? ? UDP (135 bytes) from 8.8.8.8:domain to 192.241.xxx.xxx:41429 on eth0 ? ? UDP (119 bytes) from 8.8.8.8:domain to 192.241.xxx.xxx:43463 on eth0 ? ? UDP (110 bytes) from google-public-dns-a.googl:domain to 192.241.xxx.xxx:531 ?
Có một số giao diện khác để bạn tự điều tra.
netstat
Lệnh " netstat " là một công cụ đa năng để thu thập thông tin mạng. Nó cực kỳ linh hoạt và mạnh mẽ.
Theo mặc định, netstat in danh sách các socket đang mở:
netstat
Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 192.241.187.204:ssh ip223.hichina.com:50324 ESTABLISHED tcp 0 0 192.241.187.204:ssh rrcs-72-43-115-18:50615 ESTABLISHED Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 5 [ ] DGRAM 6559 /dev/log unix 3 [ ] STREAM CONNECTED 9386 unix 3 [ ] STREAM CONNECTED 9385 . . .
Nếu ta thêm tùy chọn "-a", nó sẽ liệt kê tất cả các cổng, nghe và không nghe:
netstat -a
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ssh *:* LISTEN tcp 0 0 192.241.187.204:ssh rrcs-72-43-115-18:50615 ESTABLISHED tcp6 0 0 [::]:ssh [::]:* LISTEN Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 6195 @/com/ubuntu/upstart unix 2 [ ACC ] STREAM LISTENING 7762 /var/run/acpid.socket unix 2 [ ACC ] STREAM LISTENING 6503 /var/run/dbus/system_bus_socket . . .
Nếu bạn muốn lọc để chỉ xem các kết nối TCP hoặc UDP, hãy sử dụng cờ "-t" hoặc "-u" tương ứng:
netstat -at
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ssh *:* LISTEN tcp 0 0 192.241.187.204:ssh rrcs-72-43-115-18:50615 ESTABLISHED tcp6 0 0 [::]:ssh [::]:* LISTEN
Xem thống kê bằng cách chuyển cờ "-s":
netstat -s
Ip: 13500 total packets received 0 forwarded 0 incoming packets discarded 13500 incoming packets delivered 3078 requests sent out 16 dropped because of missing route Icmp: 41 ICMP messages received 0 input ICMP message failed. ICMP input histogram: echo requests: 1 echo replies: 40 . . .
Nếu bạn muốn liên tục cập nhật kết quả , bạn có thể sử dụng cờ "-c".
Có nhiều tùy chọn khác có thể thay đổi kết quả . Khám phá các trang người đàn ông để biết thêm ý tưởng.
Làm cách nào để biết tôi còn bao nhiêu dung lượng đĩa?
df
Để biết tổng quan nhanh về dung lượng ổ đĩa bạn còn lại trên ổ đĩa, bạn có thể sử dụng chương trình " df ".
Không có bất kỳ tùy chọn nào, kết quả của nó trông như thế này:
df
Filesystem 1K-blocks Used Available Use% Mounted on /dev/vda 31383196 1228936 28581396 5% / udev 505152 4 505148 1% /dev tmpfs 203920 204 203716 1% /run none 5120 0 5120 0% /run/lock none 509800 0 509800 0% /run/shm
Điều này xuất ra mức sử dụng đĩa theo byte, có thể hơi khó đọc.
Để khắc phục sự cố này, ta có thể chỉ định xuất ở định dạng con người có thể đọc được:
Filesystem Size Used Avail Use% Mounted on /dev/vda 30G 1.2G 28G 5% / udev 494M 4.0K 494M 1% /dev tmpfs 200M 204K 199M 1% /run none 5.0M 0 5.0M 0% /run/lock none 498M 0 498M 0% /run/shm
Nếu ta muốn xem tổng dung lượng ổ đĩa có sẵn trên tất cả các hệ thống file , ta có thể chuyển tùy chọn "--total". Điều này sẽ thêm một hàng ở dưới cùng với thông tin tóm tắt:
df -h --total
Filesystem Size Used Avail Use% Mounted on /dev/vda 30G 1.2G 28G 5% / udev 494M 4.0K 494M 1% /dev tmpfs 200M 204K 199M 1% /run none 5.0M 0 5.0M 0% /run/lock none 498M 0 498M 0% /run/shm total 32G 1.2G 29G 4%
du
Trong khi df là một cách dễ dàng để xem tổng quan, thì " du " cho ta một bức tranh tốt hơn về những gì đang chiếm dung lượng trên hệ thống.
Lệnh sẽ phân tích việc sử dụng cho folder hiện tại và bất kỳ folder con nào. Đầu ra mặc định của du trông như thế này:
du
4 ./.cache 8 ./.ssh 28 .
, ta có thể chỉ định kết quả mà con người có thể đọc được bằng cách chuyển nó "-h":
du -h
4.0K ./.cache 8.0K ./.ssh 28K .
Để xem kích thước file cũng như folder , hãy nhập như sau:
du -a
0 ./.cache/motd.legal-displayed 4 ./.cache 4 ./.ssh/authorized_keys 8 ./.ssh 4 ./.profile 4 ./.bashrc 4 ./.bash_history 28 .
Để có tổng số ở dưới cùng, bạn có thể thêm tùy chọn "-c":
du -c
4 ./.cache 8 ./.ssh 28 . 28 total
Nếu bạn chỉ quan tâm đến tổng số chứ không phải chi tiết cụ thể, bạn có thể đưa ra:
du -s
28 .
Cải tiến
Hai công cụ này có version cải tiến có thể được cài đặt trên Ubuntu.
Một version cải tiến của df là " pydf ". Nó có thể được cài đặt bằng lệnh này:
sudo apt-get install pydf
Lệnh pydf sắp xếp mọi thứ trong biểu đồ gọn gàng với kết quả được tô màu. Nó hiển thị mức sử dụng đĩa bằng đồ thị với các thanh sử dụng:
pydf -a
dev/vda 30G 1200M 27G 3.9 [........] / udev 493M 4096B 493M 0.0 [........] /dev devpts 0 0 0 - [........] /dev/pts proc 0 0 0 - [........] /proc tmpfs 199M 204k 199M 0.1 [........] /run none 5120k 0 5120k 0.0 [........] /run/lock none 498M 0 498M 0.0 [........] /run/shm . . .
Một cải tiến về du là " ncdu ". Lệnh này có thể được cài đặt bằng lệnh :
sudo apt-get install ncduLệnh này sử dụng màn hình ncurses tương tác để biểu thị bằng đồ thị việc sử dụng đĩa của bạn:
ncdu
--- /root ---------------------------------------------------------------------- 8.0KiB [##########] /.ssh 4.0KiB [##### ] /.cache 4.0KiB [##### ] .bashrc 4.0KiB [##### ] .profile 4.0KiB [##### ] .bash_history
Bạn có thể bước qua hệ thống file bằng cách sử dụng các mũi tên lên và xuống và nhấn "enter" trên bất kỳ mục nhập folder nào.
Làm cách nào để biết được bộ nhớ của tôi đang được sử dụng như thế nào?
miễn phí
Cách dễ nhất để tìm ra mức sử dụng bộ nhớ hiện tại trên hệ thống của bạn là sử dụng lệnh " miễn phí ".
Khi được sử dụng mà không có tùy chọn, kết quả sẽ giống như sau:
free
total used free shared buffers cached Mem: 507620 408172 99448 0 123672 248224 -/+ buffers/cache: 36276 471344 Swap: 0 0 0
Để hiển thị ở định dạng dễ đọc hơn, ta có thể chuyển tùy chọn "-m" để hiển thị kết quả tính bằng megabyte:
free -m
total used free shared buffers cached Mem: 495 398 97 0 120 242 -/+ buffers/cache: 35 460 Swap: 0 0 0
Dòng ở giữa, được đánh dấu "- / + cache / bộ nhớ cache", sẽ hiển thị bộ nhớ thực được các ứng dụng sử dụng.
Dòng "Mem" bao gồm bộ nhớ được sử dụng để đệm và bộ nhớ đệm, được giải phóng ngay khi cần cho các mục đích khác.
vmstat
Lệnh " vmstat " có thể xuất ra nhiều thông tin khác nhau về hệ thống của bạn, bao gồm thông tin bộ nhớ, swap , ổ đĩa và cpu.
Ta sẽ sử dụng lệnh để có một cái nhìn khác về việc sử dụng bộ nhớ:
vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 0 99340 123712 248296 0 0 0 1 9 3 0 0 100 0
Ta có thể thấy điều này bằng megabyte bằng cách chọn đơn vị của ta có cờ "-S":
vmstat -S M
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 0 96 120 242 0 0 0 1 9 3 0 0 100 0
Như bạn thấy, công cụ này giúp ta chia nhỏ danh mục "- / + cache / bộ nhớ cache" của lệnh "miễn phí".
Ta sẽ xem có bao nhiêu khối đó được sử dụng để đệm và bao nhiêu cho cache .
Để nhận một số thống kê chung về việc sử dụng bộ nhớ, hãy nhập:
vmstat -s -S M
495 M total memory 398 M used memory 252 M active memory 119 M inactive memory 96 M free memory 120 M buffer memory 242 M swap cache 0 M total swap 0 M used swap 0 M free swap . . .
Để nhận thông tin về việc sử dụng bộ nhớ cache của các quy trình hệ thống riêng lẻ, hãy nhập:
vmstat -m -S M
Cache Num Total Size Pages ext4_groupinfo_4k 195 195 104 39 UDPLITEv6 0 0 768 10 UDPv6 10 10 768 10 tw_sock_TCPv6 0 0 256 16 TCPv6 11 11 1408 11 kcopyd_job 0 0 2344 13 dm_uevent 0 0 2464 13 bsg_cmd 0 0 288 14 . . .
Điều này sẽ cung cấp cho bạn chi tiết về loại thông tin được lưu trữ trong bộ nhớ cache.
Kết luận
Sử dụng các công cụ này, bạn sẽ bắt đầu có thể giám sát server của bạn từ dòng lệnh. Có nhiều tiện ích khác thực hiện các thao tác giám sát đơn giản, nhưng đây là một điểm khởi đầu tốt.
Các tin liên quan
So sánh server Django: server phát triển, Mod_WSGI, uWSGI và Gunicorn2013-08-19
Giới thiệu khái niệm cơ bản về Linux
2013-08-16
Cách sử dụng SFTP để truyền tệp an toàn bằng server từ xa
2013-08-13
Cách thiết lập server Git riêng trên VPS
2013-08-02
Cách cài đặt và cấu hình firewall server cấu hình (CSF) trên Ubuntu
2013-07-29
Kiến thức cơ bản về quyền của Linux và cách sử dụng Umask trên VPS
2013-07-10
Cách bảo mật server cloud chống lại SQL Injection
2013-07-05
Cài đặt và sử dụng Vim Text Editor trên Cloud Server
2013-07-03
Cách cài đặt Zend Server 6 trên VPS CentOS 6.4
2013-07-03
Cài đặt và sử dụng Vim Text Editor trên Cloud Server
2013-07-03