Phát biểu từ kinh nghiệm khiêm tốn nhưng tôi nghĩ đáng để chia sẻ, nút thắt lớn với cơ sở dữ liệu SQL (Sybase và máy chủ SQL ở đây) là lưu trữ.
Nhưng tôi nghĩ thật công bằng khi ai đó lần đầu tiên điểm chuẩn thiết lập của họ trước khi đưa ra bất kỳ giả định sai nào. Trong trường hợp của tôi, việc sử dụng CPU chưa bao giờ tăng đủ cao để biện minh cho việc nâng cấp CPU bất cứ lúc nào sớm. Thay vào đó, tôi đã nâng cấp từ ổ đĩa đơn lên RAID 1 và sau đó lên RAID 10 + một lần nâng từ 8GB lên 16GB RAM.
Tất cả các nâng cấp RAID này đã giúp giảm thời gian chờ đợi trước đó xuống 2 đến 6. Tôi nghi ngờ việc nâng cấp lên SSD sẽ còn tốt hơn nữa. Nếu bạn nghĩ về nó, tất cả có thể được giảm xuống băng thông (lý thuyết). Kết hợp [(Tốc độ RAM + Kích thước RAM + Bộ điều khiển bộ nhớ) của bạn với CPU] có giới hạn băng thông sẽ là yếu tố quan trọng nhất trong hoạt động đọc khi dữ liệu của bạn phải luôn được lưu trong bộ nhớ cache, bộ nhớ (RAID) cụ thể của bạn có giới hạn băng thông ( ảnh hưởng đến việc đọc khi bộ nhớ cache bị mất và ghi khi xóa hoặc với nhiều máy khách ghi nhiều dữ liệu kết hợp).
Bình thường hóa tất cả các giới hạn đó càng nhiều càng tốt (mang chúng lại gần để bạn không lãng phí tài nguyên) và nâng chúng càng nhiều càng tốt (nâng cấp khi cần và chỉ khi cần, đừng để tài nguyên bị lãng phí nếu hệ thống giành chiến thắng ' t có thể sử dụng chúng bởi vì một số nút cổ chai khác đang cản trở). Cuối cùng, nút cổ chai tồi tệ nhất của bạn sẽ là hệ thống con máy chủ hoạt động kém nhất (với băng thông ít nhất) trong cấu hình cụ thể của bạn.
Tôi cũng có thể thêm rằng, trong quá trình nâng cấp, tôi đã tạo các cấu hình RAID riêng cho các tệp cơ sở dữ liệu và các tệp nhật ký cơ sở dữ liệu. Lý do là các tệp nhật ký cơ sở dữ liệu có xu hướng được viết chuyên sâu. Một tệp nhật ký được sử dụng để khôi phục cơ sở dữ liệu từ sự cố và nó luôn được ghi ngay lập tức vì một giao dịch được thực hiện trước khi bất kỳ dữ liệu nào được ghi vào tệp cơ sở dữ liệu.
Một tệp nhật ký cũng được sử dụng bởi một số máy chủ sao chép cơ sở dữ liệu nhưng hầu hết sao chép không được thực hiện ngay lập tức mà thường xuyên do đó tác động hiệu suất đọc là tối thiểu ở đây. IT nhât thi tôi nghi vậy. Tôi đã thực hiện đo điểm chuẩn tối thiểu trong khi thực hiện nâng cấp này một lần nữa, tôi khuyên mọi người trước tiên nên điểm chuẩn các cấu hình khác nhau của họ và trước tiên nâng cấp lưu trữ của họ, sau đó là RAM và liên kết mạng, trước khi nghĩ đến việc nâng cấp CPU của họ.
Sau khi nâng cấp mở rộng hơn trên hơn 5 máy chủ, tôi đã quay lại để chia sẻ kinh nghiệm của mình. Tôi chắc chắn vẫn ủng hộ cho lần đầu tiên nâng cấp lưu trữ, sau đó là RAM và sau đó là CPU. Lý do là sự chênh lệch về băng thông trong hệ thống giữa bộ nhớ, RAM và CPU, theo thứ tự từ thấp nhất đến cao nhất. Vì vậy, tôi đã nâng cấp một loạt các máy chủ từ RAID10 và RAID1 kép lên SSD.
Cách tôi đã làm vì lo ngại về chi phí (tôi có thêm 20 máy chủ để nâng cấp) là chuyển dữ liệu cơ sở dữ liệu và các tệp đối tượng sang SSD (vâng, chỉ một SSD trong RAID0) và chuyển nhật ký giao dịch cộng với tempdb sang RAIDHD 4xHDD cấu hình. Tôi đã thử nghiệm với tempdb trên SSD cũng cho kết quả tuyệt vời (thực tế là kết quả rất tốt với đôi khi truy vấn nhanh hơn 15 lần, thu được một số báo cáo mất vài giây thay vì vài phút trước đây) nhưng sau đó đã chuyển tempdb sang đĩa RAID10 vì mối quan tâm sâu sắc về ghi-viết cho SSD.
Vì vậy, bây giờ về cơ bản tôi đã quan sát thời gian phản hồi nhanh hơn 10 - 15 lần cho một số truy vấn dài nhất. SSD rất tốt để đọc dữ liệu vào RAM nhanh vì SQL Server không đưa dữ liệu vào RAM cho đến khi được yêu cầu và tất nhiên trước tiên dữ liệu cần được nạp vào RAM để được CPU xử lý (sau này, trong bộ đệm L1, L2, L3) , do đó, SSD giúp giảm thời gian chờ đợi ban đầu bởi một yếu tố rất lớn. Và SSD cũng giúp giảm thời gian tráo đổi ... xóa RAM và tải dữ liệu mới, đặc biệt nếu cơ sở dữ liệu của bạn lớn hơn có thể vừa với RAM.
Nói chung, chúng tôi rất hài lòng và đã chạy như vậy trong vài tháng trong một quá trình di chuyển chậm để cho phép các máy chủ chạy để tôi có thể thu thập thông tin cấp độ hao mòn trước khi tôi chuyển tất cả các máy chủ của mình sang cấu hình này. Và đây chỉ là SQL Server Express! : D - Chỉ cần đảm bảo rằng SSD của bạn có thể cung cấp IOPS không đổi bởi vì đó là một thứ khác tạo ra sự khác biệt lớn (chỉ cần google nó). Đó là lý do tại sao tôi chọn SSD loạt Intel DC (DataCenter).