2016-08-01 17 views
8

Tôi đã nhận thấy rằng một số giải pháp lưu trữ đám mây có đĩa IO thực sự kém. Điều này gây ra một vài vấn đề có thể được giải quyết bằng cách chờ tập lệnh đợi cho đến khi đĩa ít bận.Làm cách nào để kiểm tra mức độ bận của HDD với PHP?

Với PHP, bạn có thể theo dõi trạng thái bận (hoặc không quá bận) của hệ thống tệp mà không làm mọi thứ tồi tệ hơn không?

+1

Vâng, bạn chắc chắn có thể kích hoạt tất cả các loại tiện ích hệ thống và đánh giá đầu ra của chúng để nhận bất kỳ thông tin nào bạn cũng có thể vẽ như một con người. Tuy nhiên tôi nghi ngờ rằng điều này thực sự giúp trong kịch bản bạn mô tả. "Đĩa cứng" bạn thấy trong hệ thống ảo hóa chỉ được mô phỏng. Vì vậy, các tiện ích có thể hiển thị một số thông tin, nhưng câu hỏi là có bao nhiêu sự thật trong đó. Hiệu suất kém trong các kịch bản như vậy không nằm trong phần cứng hệ thống (dù sao là ảo), nhưng trong toàn bộ cụm mạng được cung cấp tất cả các dịch vụ mà bạn không thể kiểm soát hoặc dự đoán được. – arkascha

+1

Tôi muốn nhận được nhà cung cấp tốt hơn hoặc ưu đãi tốt hơn nếu bạn gặp sự cố với giải pháp hiện tại của mình. Có _huge_ sự khác biệt giữa các nhà cung cấp khác nhau. Thông thường các nhà cung cấp ít được biết đến cung cấp một hiệu suất tốt hơn nhiều so với các công ty nổi tiếng. – arkascha

+0

Tôi nên thêm rằng tôi không còn tham gia dự án nữa (và không biết ơn). Hệ thống có độ trễ không đúng về HDD. Caching vào ổ cứng thay vì DB thực sự gây ra các kết nối đến thời gian ra ngoài. Đó là nền tảng tồi tệ nhất mà tôi từng làm việc. Tôi đã kết thúc việc lưu trữ vars config trong DB vì nó nhanh hơn để có được chúng theo cách đó. –

Trả lời

17

Nếu đây là hệ thống Linux, bạn có thể tự tính toán mức sử dụng đĩa - ngôn ngữ bạn chọn để triển khai nó sẽ sử dụng cùng một khái niệm.

Hạt nhân của bạn có nhiều khả năng sử dụng nhất sysfs, tạo nhiều thông tin về hệ thống của bạn có sẵn tại /sys; chúng tôi có thể lấy thông tin về đĩa mong muốn của chúng tôi tại một khoảng thời gian thường xuyên, và tính toán sử dụng dựa trên sự khác biệt giữa chúng.

Trên hệ thống của tôi, tôi sẽ xem đĩa, sda, máy của bạn có thể khác.

$ cat /sys/class/block/sda/stat 
    42632  25 2045318 247192 6956543 7362278 123236256 23878974  0 3703033 24119492 

Bây giờ nếu chúng ta nhìn vào the Kernel documentation cho /sys/class/block/<dev>/stat chúng ta có thể thấy các mô tả sau đây cho mỗi cột của đầu ra.

Name   units   description 
----   -----   ----------- 
read I/Os  requests  number of read I/Os processed 
read merges  requests  number of read I/Os merged with in-queue I/O 
read sectors sectors  number of sectors read 
read ticks  milliseconds total wait time for read requests 
write I/Os  requests  number of write I/Os processed 
write merges requests  number of write I/Os merged with in-queue I/O 
write sectors sectors  number of sectors written 
write ticks  milliseconds total wait time for write requests 
in_flight  requests  number of I/Os currently in flight 
io_ticks  milliseconds total time this block device has been active 
time_in_queue milliseconds total wait time for all requests 

Nếu chúng ta chạy theo một lịch trình định kỳ, và diff một số thời gian chờ đợi, chúng ta có thể thấy chỉ trong bao lâu chúng ta đang chờ đợi vào mỗi hoạt động. Bạn cũng sẽ có các chỉ số khác về tổng số IOPS và băng thông RW. Tài liệu hướng dẫn sâu hơn về từng lĩnh vực.

Dù ngôn ngữ được chọn, mô tả tập tin để mở để có được thông tin về đĩa sẽ

/sys/class/block/<dev>/stat 

Nếu chúng ta làm điều này trên một lịch trình, chúng ta có thể vẽ đồ thị ưa thích;)

enter image description here

+7

Câu trả lời này thật tuyệt vời Tôi đã gần như xin lỗi vì không có cơ hội để thử nó. Sau đó, tôi nhớ tôi mừng vì tôi không còn tham gia vào dự án đó nữa. –

+3

Xin lỗi để làm sống lại bài đăng; nhìn thấy nó trên meta và đã phải chia sẻ đồ thị của tôi: D Nhưng không có vấn đề dự án, đồ thị luôn luôn là một điều tốt để có thể xác định các vấn đề! Chúc may mắn! (Tôi sử dụng [Grafana] (https: // grafana.com /)) Xin lỗi tôi không thấy bài đăng sớm hơn! –

+2

Xin chào, không sao cả. Bạn đã giải quyết được lo lắng của tôi về việc phải làm gì với câu hỏi. Nó rất hữu ích ngay bây giờ, đó là một chiến thắng. –

Các vấn đề liên quan