SSD đột kích có thể nhanh hơn ramdisk không?


9

Vì vậy, một ssd thông thường sẽ có tốc độ đọc 250 - 500 mb / giây. Và một ram sẽ có khoảng 10 lần hơn thế.

Câu hỏi của tôi là: 4 ssds với raid-0 có thể nhanh hơn một khối bộ nhớ ram vì một số lý do không?

Tôi sẽ đi với rất nhiều ram và ramdisk, hoặc 4 ssds với raid-0. Cái nào nhanh hơn?

Câu trả lời:


12

Vì vậy, một ssd thông thường sẽ có tốc độ đọc 250 - 500 mb / giây. Và một ram sẽ có khoảng 10 lần hơn thế.

Bạn đang đề cập đến loại RAM nào? Chắc chắn không phải thứ gì đó được sử dụng phổ biến trong PC gần đây, có vẻ như vậy.

DDR3 SDRAM có thể cung cấp cho bạn tốc độ truyền khoảng 10 GB / giây (bạn cần DDR3-1333 cho điều đó) và hiện đang đứng đầu với tốc độ khoảng 17 GB / giây cho DDR3-2133.

Giả sử bạn có bốn ổ SSD có khả năng cung cấp 500 MB / s và toàn bộ hệ thống có khả năng xử lý điều đó (không có tranh chấp xe buýt, hệ thống vẫn bị ràng buộc I / O, v.v.). Điều này cung cấp cho bạn thông lượng tối đa theo lý thuyết là 2 GB / s. Các 4xSSD mất ra gần gấp 10 lần.

DDR3 SDRAM có độ trễ trong khu vực 10 ns. Một ổ SSD tốt có thể cung cấp cho bạn 100 nghìn IOPS, đứng đầu, có nghĩa là độ trễ 10.000 ns. (Ví dụ: Intel 530 chỉ định IOPS 41k cho số lần đọc 4k ngẫu nhiên, mang lại cho bạn độ trễ gần 25.000 ns.)

Sọc bốn ổ SSD nhanh và bỏ qua tất cả chi phí hoạt động và bạn có thể nhận được 400 nghìn IOPS hoặc độ trễ 2.500 ns. 4xSSD thua với hệ số 250.

Dữ liệu từ SSD phải được chuyển đến một nơi nào đó và "nơi nào đó" sẽ là RAM. CPU có thể lấy nó từ đó, nhưng nó không nói chuyện trực tiếp với SSD hơn là nó nói chuyện trực tiếp với ổ đĩa cứng quay đĩa.

Nếu chúng tôi cho rằng bạn không bị tranh chấp xe buýt trên SSD, thì sẽ hợp lý khi giả định điều tương tự cho RAM. Điều này dẫn đến kết luận rằng theo một trong các số liệu này, SSD rất chậm so với DDR3 SDRAM.

RAM có nhược điểm khác. Ngay cả so với SSD, nó rất đắt trên mỗi gigabyte và nó cần nguồn điện liên tục để giữ lại nội dung của nó. Ngoài ra, một đĩa RAM không hoạt động hoàn toàn giống với RAM, vì nó là một phần mềm được xây dựng trong hệ điều hành. Bạn vẫn sẽ nhận được hầu hết lợi ích về hiệu năng của RAM, nhưng bạn lại mất cùng một lượng RAM, điều này có thể khiến hệ thống phải dùng đến việc hoán đổi thường xuyên hơn (đó là án tử hình về hiệu năng) và có khả năng sẽ không cho hiệu năng khá giống với RAM thô.


ramdisk rồi ..
Koray Tugay 10/12/13

1
@KorayTugay Nếu bạn cần hiệu năng tuyệt đối nhất, bạn nên sử dụng đĩa RAM, nhưng hãy nhớ rằng đĩa RAM không hoạt động hoàn toàn giống với RAM và có nhược điểm riêng, không phải là giá thấp nhất . (Ngoài ra, trong khi tôi đánh giá cao sự chấp nhận, tôi khuyến khích bạn đợi khoảng một ngày trước khi chấp nhận câu trả lời trong trường hợp người khác cung cấp câu trả lời thậm chí tốt hơn.)
CVn

@KorayTugay: Nói chung, câu trả lời cho "Tôi có cần RAMDisk không?" hầu như luôn luôn là "Không. Nếu bạn thực sự cần nó, bạn sẽ biết đủ rằng bạn sẽ không phải hỏi." Bạn đang làm gì khiến bạn nghĩ bạn sẽ cần nó?
afrazier

@afrazier phát triển / thử nghiệm với một cơ sở dữ liệu khổng lồ và tôi truy cập nó nhiều lần và rất nhiều dữ liệu được lấy từ nó. Tôi sẽ giữ db trong ram. Tôi làm điều này trong 8 10 giờ mỗi ngày và chờ 4 5 giây dường như quá lâu sau một thời gian. Tôi cần phải nhấn db nhanh hơn.
Koray Tugay

5
Bất kỳ DBMS có thẩm quyền nào cũng sẽ giữ càng nhiều DB trong RAM càng tốt. Nếu DB của bạn đủ nhỏ để vừa trong RAMdisk, thì nó đủ nhỏ để vừa với RAM. Điều chỉnh đúng DBMS của bạn bằng ổ SSD sẽ mang lại cho bạn hiệu suất mà bạn đang tìm kiếm - để phát triển cục bộ, bạn thậm chí có thể tận dụng những thứ như ghi lại bộ nhớ đệm và bớt lo lắng về ACID. Một RAMdisk đang chiến đấu với hệ thống.
afrazier

4

Nguyên nhân thực sự của câu trả lời "không" không chỉ là sự so sánh khác biệt giữa hai người, mà bởi vì hệ điều hành cuối cùng sẽ lưu trữ dữ liệu đọc từ SSD. Nó sẽ lưu trữ bộ nhớ cache này trong RAM của bạn . Do đó, việc đọc khối từ SSD cũng đồng nghĩa với việc ghi khối vào RAM. Luôn luôn.

Đây là lý do tại sao các đĩa RAM nhanh hơn ngay cả trong các kết hợp phần cứng rất đặc biệt (ví dụ: SSD rất nhanh được kết hợp với RAM rất chậm).


1
Đây thực sự là câu trả lời tốt nhất.
ChrisInEdmont

sudo zfs set primarycache=none tankCó bộ nhớ cache dựa trên RAM của bạn. (Giả sử tất nhiên bạn đang sử dụng ZFS.)
CVn

@ MichaelKjorling Điều đó đúng, và ngay cả trên các công trình không phải zfs cũng có khả năng tắt bộ đệm đọc. Nhưng ngay cả trong trường hợp này, nếu bạn thực hiện cuộc gọi $ read () $, nó thực sự sẽ là một bản sao từ SSD sang RAM. Bạn không thể tránh điều này, ngoại trừ nếu bạn đang đọc dữ liệu bằng cách nào đó trực tiếp vào bộ đệm CPU (điều đó cũng có nghĩa là bạn tránh bằng cách nào đó DMA), AMD cpus (và có thể là intels) có trình quản lý bộ nhớ tích hợp, tôi nghĩ rằng phiên bản được sửa đổi một chút của họ bằng cách nào đó có thể làm điều đó. Nhưng ngay cả trong trường hợp này, nó sẽ yêu cầu sửa đổi CPU.
peterh - Phục hồi Monica

3

Để trả lời câu hỏi thực tế của bạn: Không. RAM có thứ tự băng thông lớn hơn và độ trễ có độ lớn ít hơn. Nó thậm chí không gần gũi.

Để trả lời câu hỏi bạn không hỏi: Những gì bạn dự định làm là một ý tưởng tồi, trừ khi bạn có một trường hợp sử dụng rất cụ thể đòi hỏi loại băng thông đó. Nếu bạn thực sự cần loại tốc độ đó, việc có ổ SSD dựa trên PCIe (như ioDrive hoặc Intel 910 sẽ nhanh hơn nhiều so với túi SSD SATA trong RAID-0.

Bất kỳ ổ SSD hiện tại nào cũng sẽ đủ nhanh cho khối lượng công việc của người tiêu dùng và người đam mê mà bạn sẽ là nút cổ chai.


Trên thực tế, độ trễ DDR3 không phải là một đơn đặt hàng có cường độ thấp hơn so với SSD. Đó là ba đến bốn bậc độ lớn thấp hơn. Xem câu trả lời của tôi cho một số con số thực tế. (Tuy nhiên, sự khác biệt về băng thông chắc chắn là ở sân bóng.)
CVn

Độ trễ không quan trọng, vì IO xảy ra theo khối. Ít nhất là trong các khối 4K. Băng thông là quan trọng.
peterh - Tái lập Monica

@PeterHorvath: Độ trễ vẫn là vấn đề lớn với SSD. Nhìn vào tất cả các nghiên cứu và điểm chuẩn về tính nhất quán và các vấn đề nói lắp mà SSD ban đầu có. Và như Michael Kjorling đã đề cập, độ trễ RAM thấp hơn vài lần so với SSD. Độ trễ trên bộ đệm Lx vẫn thấp hơn đáng kể và độ trễ đăng ký CPU thậm chí còn thấp hơn. Và tất cả đều quan trọng đối với hiệu suất.
afrazier

1

RAM sẽ luôn nhanh hơn bất kỳ hệ thống bus ngoại vi nào (như SATA) có thể cung cấp.

Nhưng khi bạn đang xử lý một đĩa RAM, bạn không hoàn toàn chỉ xử lý RAM. Ngoài ra còn có một loạt phần mềm (trình điều khiển hệ thống tệp và thiết bị) để xem xét việc "chuyển đổi" RAM thô thành thứ gì đó mà HĐH sẽ xem là lưu trữ đĩa.

Tốc độ của một đĩa RAM thực sự sẽ hoàn toàn phụ thuộc vào chất lượng của phần mềm đó.

Phải nói rằng: Thông thường nó vẫn phải nhanh hơn nhiều lần vì là giải pháp lưu trữ nhanh nhất bạn có thể gắn vào bo mạch chủ.

Có thể có một số trường hợp góc trong đó mô hình sử dụng cụ thể sẽ làm cho sự khác biệt nhỏ hơn hoặc gần như bằng 0, nhưng không có chi tiết hơn về những gì bạn sẽ làm với một hệ thống như vậy, không thể nói nếu điều đó sẽ áp dụng cho tình huống của bạn.

PS Hãy nhớ rằng một đĩa RAM sẽ không ổn định. Sau khi khởi động máy, bạn sẽ phải tải dữ liệu ban đầu. Khi tắt máy, bạn sẽ phải lưu nội dung (nếu bạn cần cho lần chạy tiếp theo). Nếu hệ thống gặp sự cố, bạn sẽ mất đĩa RAM để lưu bất cứ thứ gì.
Đây là điều bạn sẽ phải tính đến, đặc biệt nếu bạn mong đợi việc khởi động lại thường xuyên. Lưu / Tải lại nội dung đĩa RAM có thể ít hơn tầm thường.


Tôi sẽ giữ cơ sở dữ liệu của tôi trong ram.
Koray Tugay
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.