Đượ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)