Trang chủ Thủ Thuật Hệ thống chậm? Làm thế nào để xem Linux có phải là...

Hệ thống chậm? Làm thế nào để xem Linux có phải là bộ nhớ, CPU hoặc IO Bound hay IO Bound hay không

0
14

Hệ thống chậm? Làm thế nào để xem Linux có phải là bộ nhớ, CPU hoặc IO Bound hay IO Bound hay không

4db0261d 1
Shutterstock/solarseven

Hệ thống chạy chậm? Nếu vậy, hệ thống của bạn sẽ bị bộ nhớ, CPU hoặc I / O bị ràng buộc. Bài viết này sẽ chỉ cho bạn một cách nhanh chóng để tìm ra cái nào trong số ba nó là, cho phép bạn thực hiện các cải tiến hiệu suất hệ thống thông báo.

Bộ nhớ, Điện toán (CPU) hoặc I/O Bound?

Bất cứ khi nào hệ thống của bạn chạy chậm, nó hầu như luôn luôn là do thành phần hoặc chuỗi thành phần chậm nhất trong hệ thống của bạn. Điều này đôi khi có thể được gây ra bởi phần mềm, nhưng thông thường, đó là phần cứng là thủ phạm.

Ví dụ: nếu bạn có một đĩa rất cũ và chậm – ví dụ, một đĩa quay 5400 RPM vẫn còn hơi phổ biến, thường được gọi là ổ cứng hoặc Ổ đĩa cứng – đĩa đó có thể là nút cổ chai trong hệ thống của bạn.

Hãy suy nghĩ về nó như đường ống với nước chảy qua chúng. Hình dung bộ nhớ, bộ máy tính của hệ thống (CPU hoặc Bộ xử lý trung tâm – chip / bộ xử lý chính trong hệ thống của bạn) và đĩa (như một phần của I / O hoặc hệ thống Đầu vào / Đầu ra) tất cả như đường ống nước. Bây giờ, hãy tưởng tượng rằng các thành phần chậm nhất là một đường ống nhỏ hơn, và các thành phần nhanh nhất là một đường ống lớn hơn. Nếu bạn cần chuyển 10L qua mỗi đường ống, đường ống chậm nhất sẽ mất nhiều thời gian hơn đường ống lớn nhất.

Trên Linux, các nút thắt chính là Bộ nhớ (RAM), Điện toán (CPU) hoặc I/O (hoạt động đĩa). Trong trường hợp bộ nhớ, tốc độ có thể là một yếu tố, nhưng nó đang cạn kiệt nó, đó là một vấn đề lớn. Đối với CPU, nếu bạn đang sử dụng phần cứng cũ hơn, mỗi lõi CPU hoạt động chậm hơn rất nhiều và có thể không có đủ chúng. Đối với I/O, đọc từ ổ cứng chậm cũng như ghi đĩa quá mức có thể là vấn đề.

Quảng cáo

Có những công cụ bạn có thể sử dụng giúp bạn dễ dàng tìm hiểu xem một hệ thống là Bộ nhớ, Điện toán (CPU) hay I / O Bound. Tất cả những gì bạn cần là htopiotop,hai công cụ bán đồ họa, có thể dễ dàng cài đặt trên Linux.

Cài đặt htop và iotop

Installing htop and iotop

Để cài đặt htop và iotop trên bản phân phối Linux dựa trên Debian / Apt của bạn (Như Ubuntu và Mint), hãy làm:

sudo apt install htop iotop

Để cài đặt htop và iotop trên bản phân phối Linux dựa trên RedHat / Yum của bạn (Như RedHat và Fedora), hãy làm:

sudo yum install htop iotop

CPU ràng buộc

A CPU Bound system htop output

Thật dễ dàng để xem liệu một hệ thống có bị ràng buộc bởi CPU hay không. Chỉ cần gõ ‘htop’ vào dòng lệnh và nhấn enter. Sau đó nhìn vào các thanh CPU đầy màu sắc ở phía trên cùng của màn hình. Nếu bộ xử lý của bạn có 16 luồng, sẽ có 16 thanh.

Câu hỏi đơn giản để trả lời là liệu tất cả chúng đều gần như ‘đầy đủ’ (gần 100%), hoặc liệu có nhiều chỗ để di chuyển hay không:

A non-CPU bound system htop output

Nếu các thanh tốt như đầy đủ, hệ thống rõ ràng là CPU bị ràng buộc. Lưu ý rằng bộ nhớ (Mem) và các thanh hoán đổi (Swp) không có nghĩa là đầy đủ: đây không phải là vấn đề hiệu suất liên quan đến bộ nhớ.

Để biết thêm một chút thông tin và xu hướng, tiếp theo bạn có thể xem số ‘Tải trung bình’. Mặc dù con số này rất tùy ý, một chút quen thuộc với hệ thống của bạn và sự hiểu biết chung rằng nếu bất kỳ số nào trong ba con số này cao hơn gấp đôi số luồng trong hệ thống của bạn, hệ thống đang phải vật lộn để theo kịp đi một chặng đường dài ở đây.

Quảng cáo

Số trung bình tải đầu tiên là trung bình 1 phút, trung bình 5 phút tiếp theo và số cuối cùng trung bình 15 phút. Trong trường hợp này, tải 1 phút là 270, gần gấp 17 lần số luồng: hệ thống của chúng tôi bị ràng buộc nhiều CPU.

Cuối cùng, một con số thú vị để kiểm tra là số lượng nhiệm vụ (và ở mức độ thấp hơn). Mặc dù các dấu nước thấp và cao chính xác phụ thuộc vào khả năng của phần cứng / máy cơ bản, nhưng nếu số tác vụ quá cao, CPU của bạn có thể chuyển đổi ngữ cảnh (thay đổi từ xử lý tác vụ này sang nhiệm vụ khác) rất nhiều.

Nếu bạn muốn tìm hiểu thêm về những màu sắc khác nhau trong htop chỉ ra, xem Color Bars trong htop – Chúng có nghĩa là gì?

Bộ nhớ bị ràng buộc

Ngay khi truy cập htop, thật dễ dàng để xem liệu một hệ thống có bị ràng buộc bộ nhớ hay không. Đơn giản chỉ cần nhìn vào bộ nhớ (Mem) và trao đổi (Swp) thanh được đề cập trước đó.

Nếu thanh Bộ nhớ hoàn toàn đầy đủ và thanh Swap có đầy đủ 50%, hệ thống gần như chắc chắn sẽ hoán đổi rất nhiều. Hoán đổi là quá trình trao đổi nội dung bộ nhớ chính với đĩa (sử dụng tệp Swap đặc biệt hoặc phân vùng Swap) vì nó đầy đủ và nói chung là siêu chậm. Một khi một hệ thống bắt đầu và tiếp tục trao đổi, nó sẽ trở nên chậm chạp.

Thật dễ dàng để nhìn thấy khi bạn bắt đầu hết bộ nhớ, vì thanh sẽ trở nên đầy. Tuy nhiên, việc sử dụng không gian hoán đổi đôi khi có thể hơi mơ hồ.

Quảng cáo

Ví dụ, 20% có thể được sử dụng, nhưng có rất nhiều bộ nhớ còn lại. Điều này có thể chỉ ra rằng hệ điều hành đã di chuyển một số vùng bộ nhớ sử dụng tần số thấp sang đĩa để tối ưu hóa bộ nhớ chính. Vì nhiều bộ nhớ vẫn còn miễn phí, tình huống này là tốt và không phải là nguyên nhân của bất kỳ mối quan tâm nào.

Ngoài ra còn có một ngoại lệ cho một thanh bộ nhớ trông khá đầy đủ, và đó là bộ nhớ đệm. Hệ thống của bạn có thể được thiết lập để dự trữ x lượng bộ nhớ để bộ nhớ đệm.

Một cách khác để nhanh chóng kiểm tra điều này là chạy free -g tại dòng lệnh (hoặc cho các máy free -m có lượng bộ nhớ nhỏ hơn như Raspberry Pi):

free -g Output

Điều này rất dễ đọc: 62 Gigabyte bộ nhớ, 25 đang sử dụng, 12 miễn phí và 24 hiện đang được gán cho bộ đệm và bộ nhớ cache. 32 có sẵn là tổng số miễn phí thực tế (12) và bất cứ thứ gì được gán cho bộ đệm và bộ nhớ cache (24) trừ đi những gì đã được sử dụng (không hiển thị), hoặc nói cách khác là 12 + 24 = 36 và 32 có sẵn, vì vậy khoảng 4 gigabyte được sử dụng bởi bộ đệm và bộ đệm.

Lưu ý rằng chúng ta cũng có thể thấy có bao nhiêu không gian hoán đổi đã được đặt trước (10 Gigabyte) và bao nhiêu đang được sử dụng ở đây: 0 hiện tại, và do đó 10 miễn phí.

I/O ràng buộc

Giả sử bạn đang kiểm tra htop và xem điều này:

A non-CPU bound system htop output

Hệ thống có vẻ bận rộn, nhưng không đủ bận rộn để được coi là CPU ràng buộc. Bộ nhớ được sử dụng / miễn phí và các thanh trao đổi cũng trông ổn. Hãy thanh toán iotop tiếp theo. Để làm như vậy, bạn cần sử dụng sudo iotop để bắt đầu iotop vì iotop đòi hỏi sudo.

Quảng cáo

Hai thanh hàng đầu là hữu ích nhất trong việc nhanh chóng phân tích xem một hệ thống có đang vật lộn với thông lượng đĩa hay không và do đó I / O bị ràng buộc.

iotop showing current disk read and write throughput

Mặc dù số M /s không phải là siêu cao về SSD hiện đại, nhưng liên tục đọc và ghi vài Megabyte mỗi giây vào ổ ĐĨA HDD chậm là I / O khá dữ dội!

Con số này, khi được xem trong một thời gian ngắn, cùng với danh sách xử lý dưới nó (để xem ai là người dùng hàng đầu) và phần trên cùng của đầu ra htop (về CPU và Bộ nhớ) mang lại cảm giác tổng thể tốt cho dù một hệ thống là Bộ nhớ, CPU hay I / O Bound.

Giảm thiểu các vấn đề về hiệu suất

Những thay đổi hệ thống cần thiết để giảm thiểu các vấn đề về hiệu suất luôn cụ thể cho hệ thống cũng như tình huống cụ thể gặp phải. Một vài ví dụ:

Hệ thống Disk/IO có bị ràng buộc không? Nó có thể có ý nghĩa để dừng một số dịch vụ nhật ký ghi nặng, để nâng cấp hệ thống I / O (ví dụ bằng cách thêm thẻ SATA trong máy tính cũ), để thay đổi thành một thiết bị lưu trữ nhanh hơn (như đĩa dựa trên NVMe thay vì ổ cứng), hoặc đơn giản là tìm một SSD nhanh hơn.

Bộ nhớ hệ thống có bị ràng buộc không? Ví dụ, có thể có ý nghĩa khi chạy ít Máy ảo hơn, chạy các quy trình ít bộ nhớ hơn hoặc thêm nhiều mô-đun bộ nhớ phần cứng vật lý hơn.

Quảng cáo

CPU hệ thống có bị ràng buộc không? Sử dụng danh sách quy trình dưới cùng trong htop để tìm quy trình đang hogging CPU. Bạn thậm chí có thể chấm dứt nó trực tiếp từ bên trong htop bằng cách sử dụng phím F9.

Nếu vấn đề là chính CPU (tức là CPU rõ ràng không theo kịp các tác vụ cơ bản nhất liên quan đến hệ thống), việc thay đổi phần cứng phức tạp hơn một chút. Người ta cần tìm một CPU nhanh hơn, vẫn tương thích với ổ cắm trên bo mạch chủ và ngay cả trong trường hợp đó, cải tiến hiệu suất có thể nhỏ. Có lẽ đã đến lúc nâng cấp hệ thống tổng thể.

Nhiều hơn một nút thắt hiệu suất?

Quay trở lại với sự tương tự đường ống nước của chúng tôi, hãy nhớ rằng đôi khi một nút cổ chai có thể được gây ra bởi sự kết hợp của các thành phần khác nhau.

Ví dụ: nếu một thẻ điều khiển I / O cũ hoặc rẻ đòi hỏi 80% thời gian CPU chỉ để xử lý dữ liệu và đĩa gắn vào nó là ổ ĐĨA HDD chậm được sử dụng cho 80% khả năng của nó, ngay cả với thông lượng của thẻ I / O rẻ hơn, thì cả hai đều đang tạo ra một vấn đề tổng thể sẽ không được giải quyết bằng cách giải quyết một trong hai. Cả hai sẽ cần phải được sửa chữa trước khi hệ thống sẽ trở thành hoạt động một lần nữa.

Gói lên

Cho dù bạn là kỹ sư DevOps hay người dùng Linux máy tính gia đình, biết cách nhanh chóng phân tích xem hệ thống của bạn là Bộ nhớ, CPU hay I / O Bound sẽ giúp bạn thực hiện các thay đổi phần mềm và phần cứng tốt hơn để phục vụ cho vấn đề hiệu suất đang gặp phải.

How to Run PHPMyAdmin in a Docker Container

Cách chạy PHPMyAdmin trong container Docker

How to Handle Web Push Notifications in Websites and PWAs

Cách xử lý thông báo đẩy web trong trang web và PWAs

How to Debug Kubernetes “ImagePullBackOff” Errors

Cách gỡ lỗi Kubernetes “ImagePullBackOff”

How to Mount Your Microsoft OneDrive in Linux

Cách gắn Microsoft OneDrive của bạn trong Linux

How to Store Large Files in Git

Cách lưu trữ các tệp lớn trong Git

Why WebAssembly Frameworks Are the Future of the Web

Tại sao webassembly frameworks là tương lai của web

Dịch từ: https://www.cloudsavvyit.com/7826/is-your-linux-system-memory-cpu-or-io-bound/

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây