Hiệu suất đĩa chậm trên máy ảo Azure


9

Được rồi, trước hết, cho phép tôi nói rằng tôi không phải là người hoạt động, mà là nhà phát triển. Vì vậy, tôi sẽ đi vào một vùng đất chưa biết ở đây, vì vậy xin vui lòng chịu đựng với tôi.

Tôi muốn sử dụng Máy ảo Azure để trích xuất tệp XML 50 GB từ tệp zip 1,9 GB. Vì vậy, tôi đã thử nghiệm kích thước cá thể trên Azure tôi nên sử dụng để có hiệu suất tốt trong khi không phải trả nhiều hơn mức tôi cần.

Tuy nhiên, hiệu suất đĩa của Azure VM không đáng kinh ngạc và tôi muốn biết liệu đó có phải là tôi đang làm gì đó không, hoặc nếu kết quả của tôi là điều có thể mong đợi.

Trước hết, những gì tôi đã được thử nghiệm với? Tôi có một ứng dụng bảng điều khiển .NET tùy chỉnh không có gì ngoài lấy tệp zip làm đối số và ngay lập tức bắt đầu trích xuất tệp zip vào cùng thư mục chứa tệp zip. Trong khi quá trình trích xuất đang diễn ra, ứng dụng sẽ tính toán bao nhiêu megabyte ứng dụng đã ghi vào tệp đích mỗi giây và xuất ra nó.

Trên máy phát triển cục bộ của tôi, tôi có hiệu suất khá tốt với ứng dụng này, viết 160-210 MB / s. Vì vậy, toàn bộ quá trình trích xuất mất khoảng 8 phút. Thông số kỹ thuật của máy cục bộ của tôi là Intel Core i7 950, 3 GHz, 4 lõi (8 logic), RAM 12 GB, Samsung SSD 830 series 250 GB.

Được rồi, vì vậy tôi bắt đầu thử nghiệm các kích thước cá thể khác nhau, và đây là kết quả của tôi.

  • Trên phiên bản A4 với Windows Server 2012 Datacenter R2 (8 lõi, RAM 14 GB) với RAID 4 sọc ảo sử dụng cùng một tài khoản lưu trữ, không có bộ nhớ đệm máy chủ, tôi nhận được 30 - 35 MB / s, có nghĩa là toàn bộ trích xuất mất 24 phút và 48 giây. Tôi cũng đã thử kích hoạt bộ nhớ đệm máy chủ, nhưng nó không thực sự tạo ra sự khác biệt nào.
  • Trong phiên bản D4 với Trung tâm dữ liệu Windows Server 2012 (8 lõi, RAM 28 GB, ổ SSD cục bộ 500 GB) tôi đã có hiệu suất thực sự tốt (150+ MB / giây) trong những phút đầu tiên, và sau đó thay đổi hiệu suất với mức tối đa 200 MB / s và thung lũng với tốc độ 9 MB / s. Hiệu suất trung bình là từ 70 đến 100 MB / s. Quá trình trích xuất mất 9 phút và 40 giây.
  • Trong phiên bản D3 với Trung tâm dữ liệu Windows Server 2012 (4 lõi, RAM 14 GB, ổ SSD cục bộ 250 GB) tôi đã có hiệu suất thực sự tốt (150+ MB / giây) ngay từ đầu, nhưng sau đó hiệu suất giảm xuống 20-40 MB / s, làm cho quá trình trích xuất mất 21 phút và 49 giây.

Trong trường hợp D2 và D1, hiệu suất đĩa kém hơn so với trên D3.

Và điều này thực sự làm tôi ngạc nhiên. Làm thế nào một đĩa SSD cục bộ có thể hoạt động kém như vậy trên các phiên bản D1, D2 và D3? Và có ai biết tại sao hiệu suất đĩa khác nhau rất nhiều giữa D1 đến D4 không? Có phải là một vấn đề bộ nhớ? Khi tôi nhìn vào trình quản lý tác vụ trong khi hệ thống trích xuất đang diễn ra, việc sử dụng bộ nhớ đang bùng nổ. Tôi nghi ngờ đó là vì Windows đang lưu trữ dữ liệu bằng văn bản, nhưng khi hết bộ nhớ, nó phải xóa dữ liệu vào đĩa. Khi điều này xảy ra, hiệu suất đĩa giảm. Nhưng điều này không xảy ra trên máy cục bộ của tôi, vậy tại sao bộ nhớ đệm nhanh như vậy lại cần thiết trên các máy ảo này?

Tôi biết có sự khác biệt giữa máy cục bộ của tôi và máy ảo được lưu trữ trong Azure, nhưng hiệu suất đĩa tôi đang trải nghiệm có thực sự được mong đợi không?

(Ban đầu tôi đã đăng câu hỏi của mình lên Stackoverflow , vì tôi nghi ngờ đó là ứng dụng của tôi là nguyên nhân. Nhưng tôi không còn chắc chắn nữa)

Câu trả lời:


7

Đến bữa tiệc muộn một chút, nhưng đối với những gì đáng để SSD "đính kèm" trong Azure có IOP của chúng được điều chỉnh dựa trên kích thước máy. Nó không được đề cập trong giá cả ở bất cứ đâu nhưng tôi đã nêu vấn đề này như một vé có hỗ trợ kỹ thuật khi họ giới thiệu tôi đến bài viết trên blog dưới đây.

Xem liên kết này: http://azure.microsoft.com/blog/2014/10/06/d-series-performance-recectations/


Thông tin tuyệt vời, cảm ơn Richard! Tôi nghi ngờ nó phải làm gì với điều tiết, nhưng lúc đó tôi không thể tìm thấy bất kỳ thông tin cụ thể nào về nó. Bài viết trên blog trả lời câu hỏi của tôi.
René

đĩa giới hạn azure io..cái gì vậy..tôi chuyển sang google cloud .. họ không giới hạn cái này và giá rẻ hơn nhiều.
tyan

4

Có lẽ nó không liên quan đến bộ nhớ. Các đĩa "vật lý" trên Azure sử dụng cái được gọi là lưu trữ Blob và đó là lý do hiệu suất không giống như trong máy tính cục bộ của bạn ngay cả với phần cứng tương tự. Bạn có thể tìm thêm thông tin về liên kết này . Đây dường như là một vấn đề phổ biến đối với cộng đồng SQL Server, người phụ thuộc rất nhiều vào hiệu suất đĩa. Tôi sẽ trích dẫn một bài báo tôi tìm thấy về nó

Hướng dẫn hiệu suất cho máy chủ SQL trong máy ảo Azure đề cập đến (trên trang 15 và 26) rằng trong máy ảo Azure, không gian lưu trữ có thể được sử dụng để cải thiện hiệu suất lưu trữ cho khối lượng công việc của máy chủ SQL

Storage Spaces là một tính năng tích hợp của Windows Server 2012, cho phép bạn sử dụng một số đĩa vật lý để tạo một đĩa ảo duy nhất, do đó giải quyết các hạn chế I / O của chính đĩa VM. Trích dẫn lại:

Với các máy ảo lớn hơn hỗ trợ nhiều (tối đa 16) đĩa vật lý, có thể tăng đáng kể hiệu năng lưu trữ. Điều này có thể kích hoạt Azure như một nền tảng khả thi cho nhiều khối lượng công việc SQL quá hạn chế bởi hiệu năng I / O của một đĩa Azure khác.

Bài viết này sẽ chỉ cho bạn các bước để tạo một không gian lưu trữ.

Bạn nên thử điều này trước. Có lẽ bạn thậm chí có thể sử dụng một thể hiện nhỏ hơn vì dịch vụ lưu trữ là một dịch vụ riêng biệt với chính thể hiện đó.


Bạn đúng rằng các đĩa tiêu chuẩn trên Azure thực sự sử dụng Blob Storage, nhưng tôi không tin đó là trường hợp của các ổ SSD. Theo thông tin được cung cấp cho Microsoft của tôi, đây là các ổ SSD vật lý cục bộ. Và khi đó là trường hợp, tôi nghĩ thật kỳ lạ khi hiệu suất khác nhau rất nhiều giữa các kích thước cá thể D. Về không gian lưu trữ: Tôi đã khám phá điều này và thực hiện một số thử nghiệm, nhưng thật không may, nó không thực sự mang lại cho tôi bất kỳ hiệu suất đáng chú ý nào. Cuối cùng, tôi đã đi đến kết luận rằng tôi phải chấp nhận rằng tôi cần sử dụng kích thước cá thể lớn hơn cho nhiệm vụ này.
René

1
@ René bạn đã có cơ hội thử nghiệm Azure Storage Premium mới chưa? Xin lỗi vì đã làm hỏng chủ đề cũ này nhưng tôi khá tò mò muốn xem cách lưu trữ mới này sẽ hoạt động như thế nào trong môi trường xung quanh bạn.
Bruno Faria

Xin lỗi vì trả lời chậm. Mẹo tuyệt vời về Azure Storage Premium. Tôi đã không thử nó vì nó chưa có sẵn trong khu vực của tôi. Nhưng tôi sẽ để mắt đến nó. Cảm ơn một lần nữa!
René
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.