Hướng dẫn kiểm tra Thông tin, Cấu hình, Perfomance của Server
Khi bạn làm việc với server cụ thể là cài cắm các gói, phần mềm hay deploy dự án bạn sẽ cần phải nắm được thông tin về server, version những thứ mình sử dụng hay những yếu tố ảnh hưởng gây hại đến project của mình, nếu có đội hỗ trợ thì tốt nhưng hơn hết bạn cũng nên biết để tự mình giải quyết trước và họ sẽ support mình những khi cần thiết. Mời bạn độc tham khảo bài viết này của Bizfly Cloud ngay nhé!
Hướng dẫn cách kiểm tra thông tin, cấu hình, perfomance Server
1. Thông tin Hệ Điều Hành
Chi tiết nhất về cả Kernel version hay HĐH đang sử dụng bạn có thể sử dụng lệnh:
$ cat /proc/version
Linux version 4.10.0-42-generic (buildd@lgw01-amd64-012) (gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) ) #46-Ubuntu SMP Mon Dec 4 14:38:01 UTC 2017
$ uname -a
Linux hungnup 4.10.0-42-generic #46-Ubuntu SMP Mon Dec 4 14:38:01 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Kết quả cho thấy server đang sử dụng HĐH Ubuntu trên Kernel Linux version 4.10.0-42-generic (buildd@kissel) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ).
Một kết quả khác:
$ cat /proc/version
Linux version 3.10.0-327.36.3.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) ) #1 SMP Mon Oct 24 16:09:20 UTC 2016
$ uname -a
Linux CENTOS-WEB-1 3.10.0-327.36.3.el7.x86_64 #1 SMP Mon Oct 24 16:09:20 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Muốn kiểm tra chi tiết thông tin về HĐH bạn có thể sử dụng lệnh:
$ lsb_release -a
No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 17.04 Release: 17.04 Codename: zesty
$ lsb_release -d
Description: Ubuntu 17.04
Lưu ý: Để sử dụng lệnh “lsb_release” bạn có thể cần phải cài đặt:
- Ubuntu:
$ sudo apt-get update
$ sudo apt-get install lsb-release
- CentOs:
# sudo yum install redhat-lsb
Chi tiết nhất bạn có thể sử dụng lệnh:
$ cat /etc/*release*
2. Kiểm tra thông tin server
(1) Thông tin CPU
Thông thường các bạn hay sử dụng lệnh: lscpu nó dễ nhớ và cung cấp cơ bản các thông tin của CPU, kết quả như sau:
$ lscpu
Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 94 Model name: Intel(R) Core(TM) i5-6300HQ CPU @ 2.30GHz Stepping: 3 CPU MHz: 845.935 CPU max MHz: 3200,0000 CPU min MHz: 800,0000 BogoMIPS: 4608.00 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 6144K NUMA node0 CPU(s): 0-3
Nếu muốn chi tiết hơn về từng core một bạn có thể sử dụng các lệnh khác:
$ cat /proc/cpuinfo
//or $ less /proc/cpuinfo
(2) Kiểm tra thông tin memory
- Thông thường, đơn giản, dễ nhớ, cung cấp đủ các thông tin mà bạn quan tâm về các thông số memory hiện tại của server đó là lệnh:
free -m (số liệu hiện thị tính theo đơn vị Mbs)
Kết quả: $ free -m
total used free shared buff/cache available Mem: 7855 1146 5926 383 783 6081 Swap: 8067 489 7578
- Ngoài ra các bạn có thể sử dụng lệnh:
$ free
- Số liệu hiện thị tính theo đơn vị Kbs. $ free -gt
- Số liệu hiện thị tính theo đơn vị Gbs.
- Chi tiết, rõ ràng nhất về các thông số của Memory bạn có thể sử dụng lệnh bên dưới:
cat /proc/meminfo
(3) Các thông tin về Hard Disks
Hiển thị thông tin các disk được cài đặt và dung lượng tương ứng:
$ sudo fdisk -l | grep '^Disk /dev/'
Disk /dev/sdb: 128.8 GB, 128849018880 bytes, 251658240 sectors Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Kiểm tra thông tin đọc ghi của ổ cứng (Cái này có thể bị ảnh hưởng bởi tốc độ mạng, ví dụ như server bạn đặt ở Mỹ trong khi AAG liên tục bị đứt và lỗi được cho rằng là tại cá mập cắn dây cáp). Lúc này hãy cố gắng đợi một chút nhé.
$ dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384 0 records in 16384 0 records out 1073741824 bytes (1,1 GB) copied, 10,0146 s, 107 MB/
Các server hiện nay với ổ cứng có tốc độ đọc ghi tốt con số 107 Mb/s sẽ thường > 100 Mb/s là ổn (Tham khảo trên mạng là vậy chứ thực chất mình không rõ lắm).
Liệt kê tất cả các PCI Devices:
$ lspci
Ngoài ra bạn có thể sử dụng các lệnh # top, # htop, # atop để kiểm tra thông tin memory, cpu sử dụng.
$ top
$ htop
$ atop
3. Kiểm tra Performance Server
Mỗi khi server có vấn đề gì đó như chạy chậm, bị chết, bạn cần phải xem xem CPU hay memory có bị chiếm dụng bởi một process nào đó hay hệ thống chúng ta ngốn CPU, memory một cách quá thể để chúng ta tối ưu lại code, sử dụng lệnh top cho kết quả như sau:
(1) Lệnh "top"
Hiển thị danh sách các tiến trình của hệ điều hành và thông tin chi tiết của chúng. Muốn thoát khỏi dùng phím q
$ top
Mội vài thông số của CPU (Dòng 3 %Cpu(s)
%us (user cpu time): phần trăm do tiến trình của người dùng (non root) sử dụng
%sy (system cpu time): phần trăm do tiến trình của hệ thống (root) sử dụng
%ni (user nice cpu time): phần trăm do các tiến trình có mức độ ưu tiên thấp sử dụng
%id (idle cpu time): phần trăm CPU đang rảnh
%wa (io wait cpu time): phần trăm CPU để đợi trong khi các tiến trình I/O đang xử lý
%hi (hardware irq): phần trăm để xử lý gián đoạn phần cứng
%si (software irq): phần trăm để xử lý gián đoạn phần mềm
%st (steal time): phần trăm do máy ảo sử dụng
Ngoài ra còn các hot key khác như:
m: Ẩn/Hiện thông tin về memory
f: Hiện thị, giải thích ý nghĩa, thay đổi thứ tự hiển thị các cột của phần thông tin các process (Title của cột có nền trắng)
r: Renice command.
k: Kill command.
(2) Lệnh "htop"
Dựa trên nền tảng nguồn mở tự do và miễn phí dành cho Linux. Rất dễ sử dụng. Bạn có thể chọn các process để kill hoặc renicing mà không sử dụng PID của nó. Nó có thể được coi là Trình quản lý tiến trình bằng giao diện đơn giản bạn có thể sử dụng các phím mũi tên lên xuống để chọn các process tương ứng và thực thi 1 hành động nào đó. Mặc định htop không được cài đặt trên ubuntu hoặc centOS.
Để có thể sử dụng được lệnh htop bạn có thể install bằng command:
Ubuntu: $ sudo apt-get install htop
Centos: $ sudo yum install htop
Sử dụng: htop
(3) Lệnh "atop"
Tương tự như htop, atop cũng được coi là Trình quản lý tiến trình bằng giao diện. Có vẻ atop mạnh mẽ hơp top, htop khá nhiều.
Như bạn thấy Atop hiển thị cả các tài nguyên phần cứng quan trọng nhất. Bạn có thể nhanh chóng xem CPU, bộ nhớ, đĩa và hiệu suất mạng. Nó cho thấy các quy trình nào chịu trách nhiệm về tải được chỉ định liên quan đến CPU và tải bộ nhớ trên một cấp độ quá trình.
Ngoài những lệnh trên các bạn có thể tham khảo một vài link sau để có thể kiểm tra server một các cẩn thận nhất:
Kiểm tra nhiệt độ của các CPU: $ sensors
Để sử dụng được lệnh này bạn cần cài đặt nó:
Ubuntu: $ sudo apt-get install lm-sensors
Centos: # sudo yum install lm_sensors