Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Stress test các máy chủ Linux là một ý tưởng hay nếu bạn muốn xem chúng hoạt động có tốt không. Trong bài đăng này, Quantrimang sẽ giới thiệu một số công cụ có thể giúp bạn thêm áp lực vào hệ thống để kiểm tra và đánh giá kết quả.
Nguyên nhân là do đôi khi bạn có thể muốn biết một hệ thống sẽ hoạt động như thế nào khi phải chịu nhiều áp lực từ một lượng lớn các quy trình đang chạy, traffic mạng lớn, sử dụng bộ nhớ quá mức, v.v. Loại thử nghiệm này có thể giúp đảm bảo rằng một hệ thống đã sẵn sàng để được sử dụng phổ thông.
Cách đầu tiên bao gồm chạy một số vòng lặp trên dòng lệnh và xem chúng ảnh hưởng đến hệ thống như nào. Kỹ thuật này gây gánh nặng cho CPU bằng cách tải rất nhiều dữ liệu. Kết quả có thể dễ dàng được nhìn thấy bằng cách sử dụng các lệnh thời gian hoạt động hoặc tương tự.
Trong lệnh dưới đây, bốn vòng lặp không kết thúc được khởi động. Bạn có thể tăng số vòng lặp bằng cách thêm chữ số hoặc sử dụng biểu thức bash như {1..6} thay cho "1 2 3 4".
for i in 1 2 3 4; do while : ; do : ; done & done
Nhập dòng lệnh, lệnh này sẽ bắt đầu bốn vòng lặp vô tận trên nền hệ thống.
$ for i in 1 2 3 4; do while : ; do : ; done & done
[1] 205012
[2] 205013
[3] 205014
[4] 205015
Trong trường hợp này, phiên làm việc 1-4 đã được khởi động. Cả số phiên làm việc và ID quá trình đều được hiển thị.
Để quan sát hiệu ứng trên mức tải trung bình, sử dụng lệnh được hiển thị bên dưới. Trong trường hợp này, lệnh thời gian hoạt động được chạy mỗi 30 giây:
$ while true; do uptime; sleep 30; done
Nếu bạn định chạy thử nghiệm định kỳ, bạn có thể đặt lệnh vòng lặp như sau:
#!/bin/bash
while true
do
uptime
sleep 30
done
Trong output, bạn có thể thấy mức trung bình tải tăng lên và sau đó bắt đầu giảm dần khi các vòng lặp đã kết thúc.
11:25:34 up 5 days, 17:27, 2 users, load average: 0.15, 0.14, 0.08
11:26:04 up 5 days, 17:27, 2 users, load average: 0.09, 0.12, 0.08
11:26:34 up 5 days, 17:28, 2 users, load average: 1.42, 0.43, 0.18
11:27:04 up 5 days, 17:28, 2 users, load average: 2.50, 0.79, 0.31
11:27:34 up 5 days, 17:29, 2 users, load average: 3.09, 1.10, 0.43
11:28:04 up 5 days, 17:29, 2 users, load average: 3.45, 1.38, 0.54
11:28:34 up 5 days, 17:30, 2 users, load average: 3.67, 1.63, 0.66
11:29:04 up 5 days, 17:30, 2 users, load average: 3.80, 1.86, 0.76
11:29:34 up 5 days, 17:31, 2 users, load average: 3.88, 2.06, 0.87
11:30:04 up 5 days, 17:31, 2 users, load average: 3.93, 2.25, 0.97
11:30:34 up 5 days, 17:32, 2 users, load average: 3.64, 2.35, 1.04 <== loops
11:31:04 up 5 days, 17:32, 2 users, load average: 2.20, 2.13, 1.01 stopped
11:31:34 up 5 days, 17:33, 2 users, load average: 1.40, 1.94, 0.98
Vì các load được hiển thị trung bình trên 1, 5 và 15 phút, nên các giá trị sẽ mất một lúc để quay lại mức bình thường đối với hệ thống.
Để dừng các vòng lặp, hãy ra lệnh kill như bên dưới - giả sử số phiên làm việc là 1-4 như bên trên. Nếu bạn không chắc chắn, hãy sử dụng lệnh jobs để xác minh ID phiên làm việc.
$ kill %1 %2 %3 %4
Một cách khác để tạo áp lực hệ thống liên quan đó là sử dụng một công cụ được xây dựng thêm áp lực vào hệ thống cho bạn. Một trong số đó được gọi là “stress” và có thể thêm áp lực hệ thống theo một số cách khác nhau. Công cụ thêm áp lực là một trình tạo khối lượng phiên làm việc, cung cấp các bài kiểm tra áp lực I/O của CPU, bộ nhớ và ổ đĩa.
Với tùy chọn --cpu, lệnh stress sử dụng hàm căn bậc hai để buộc CPU phải làm việc chăm chỉ hơn. Số lượng CPU được chỉ định càng cao, load sẽ tăng nhanh hơn.
Lệnh watch-it-2 có thể được dùng để đánh giá hiệu quả của việc sử dụng bộ nhớ hệ thống. Lưu ý rằng nó sử dụng lệnh free để xem phản hồi của áp lực.
$ cat watch-it-2
#!/bin/bash
while true
do
free
sleep 30
done
Bắt đầu theo dõi áp lực hệ thống:
$ stress --cpu 2
$ ./watch-it
13:09:14 up 5 days, 19:10, 2 users, load average: 0.00, 0.00, 0.00
13:09:44 up 5 days, 19:11, 2 users, load average: 0.68, 0.16, 0.05
13:10:14 up 5 days, 19:11, 2 users, load average: 1.20, 0.34, 0.12
13:10:44 up 5 days, 19:12, 2 users, load average: 1.52, 0.50, 0.18
13:11:14 up 5 days, 19:12, 2 users, load average: 1.71, 0.64, 0.24
13:11:44 up 5 days, 19:13, 2 users, load average: 1.83, 0.77, 0.30
Càng nhiều CPU được chỉ định trên dòng lệnh, tải càng nhanh hơn.
$ stress --cpu 4
$ ./watch-it
13:47:49 up 5 days, 19:49, 2 users, load average: 0.00, 0.00, 0.00
13:48:19 up 5 days, 19:49, 2 users, load average: 1.58, 0.38, 0.13
13:48:49 up 5 days, 19:50, 2 users, load average: 2.61, 0.75, 0.26
13:49:19 up 5 days, 19:50, 2 users, load average: 3.16, 1.06, 0.38
13:49:49 up 5 days, 19:51, 2 users, load average: 3.49, 1.34, 0.50
13:50:19 up 5 days, 19:51, 2 users, load average: 3.69, 1.60, 0.61
Lệnh stress cũng có thể tạo áp lực cho hệ thống bằng cách thêm I/O và tải bộ nhớ với các tùy chọn --io (input/output) và --vm (bộ nhớ).
Ví dụ, lệnh này thêm áp lực bộ nhớ được chạy, và sau đó dùng watch-it-2 để bắt đầu:
$ stress --vm 2
$ watch-it-2
total used free shared buff/cache available
Mem: 6087064 662160 2519164 8868 2905740 5117548
Swap: 2097148 0 2097148
total used free shared buff/cache available
Mem: 6087064 803464 2377832 8864 2905768 4976248
Swap: 2097148 0 2097148
total used free shared buff/cache available
Mem: 6087064 968512 2212772 8864 2905780 4811200
Swap: 2097148 0 2097148
Cách khác là bạn có thể sử dụng tùy chọn --io để thêm hoạt động input/output cho hệ thống. Trong trường hợp này, hãy dùng lệnh:
$ stress --io 4
Sau đó, bạn có thể quan sát mức độ áp lực IO bằng iotop. Lưu ý iotop yêu cầu quyền root.
trước
$ sudo iotop -o
Total DISK READ: 0.00 B/s | Total DISK WRITE: 19.36 K/s
Current DISK READ: 0.00 B/s | Current DISK WRITE: 27.10 K/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
269308 be/4 root 0.00 B/s 0.00 B/s 0.00 % 1.24 % [kworker~fficient]
283 be/3 root 0.00 B/s 19.36 K/s 0.00 % 0.26 % [jbd2/sda1-8]
sau
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
Current DISK READ: 0.00 B/s | Current DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
270983 be/4 shs 0.00 B/s 0.00 B/s 0.00 % 51.45 % stress --io 4
270984 be/4 shs 0.00 B/s 0.00 B/s 0.00 % 51.36 % stress --io 4
270985 be/4 shs 0.00 B/s 0.00 B/s 0.00 % 50.95 % stress --io 4
270982 be/4 shs 0.00 B/s 0.00 B/s 0.00 % 50.80 % stress --io 4
269308 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.09 % [kworker~fficient]
Các công cụ kiểm tra áp lực hệ thống sẽ giúp bạn biết được hệ điều hành sẽ phản ứng như thế nào trong các tình huống khi hoạt động thực tế.
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn