Ước tính nhanh tốc độ ổ đĩa với backup
Dmitry Kuzmenko, 30.05.2019, ib-aid.com
Bộ phận hỗ trợ kỹ thuật của chúng tôi thường xuyên nhận được câu hỏi (cũng được đặt trên các diễn đàn) - “có vẻ ổ đĩa của chúng tôi chậm, làm sao để xác nhận điều đó?”.
Câu hỏi này thường được đặt ra bởi người dùng máy ảo, nơi DBA không có quyền truy cập vào cài đặt hệ thống ổ đĩa hoặc thậm chí không biết đặc tính của nó.
Tất nhiên, tốc độ ổ đĩa có thể được đo bằng nhiều công cụ khác nhau, từ CrystalDiskMark đơn giản đến IOMeter phức tạp hơn. Nhưng kết quả chính xác nhất chỉ có được khi các ứng dụng không làm việc với ổ đĩa. Nếu không, kết quả có thể khác nhau, và dưới tải cao, việc kiểm tra có thể làm giảm hiệu suất hệ thống.
Hơn nữa, quản trị viên hệ thống có thể cấm cài đặt phần mềm của bên thứ ba, ngay cả trong một thời gian ngắn.
Tuy nhiên, việc sao lưu thường được thực hiện trên tất cả các hệ thống như vậy (trừ những hệ thống sử dụng phần mềm sao lưu cấp VM để sao lưu Firebird, điều này là sai - xem #11 tại đây trong “12 Sai Lầm Thường Gặp Khi Sao Lưu Cơ Sở Dữ Liệu”).
Sao lưu (gbak -b -g) là việc đọc tất cả dữ liệu từ cơ sở dữ liệu và ghi (tuần tự) dữ liệu này vào tệp sao lưu. Từ góc độ các thao tác đọc/ghi, đây là sự kết hợp giữa đọc ngẫu nhiên và ghi tuần tự.
Tệp sao lưu thường có kích thước bằng 60%-70% kích thước cơ sở dữ liệu. Và, do cơ chế versioning và cấu trúc trang của cơ sở dữ liệu, số lần đọc nhiều hơn số lần ghi.
Vì tệp sao lưu thường được đặt trên một ổ đĩa vật lý khác, tốc độ sao lưu tổng thể sẽ phụ thuộc vào tốc độ đọc ngẫu nhiên của cơ sở dữ liệu và tốc độ ghi tuần tự của ổ sao lưu. Tất nhiên, bạn có thể đặt cơ sở dữ liệu trên HDD và sao lưu sang SSD, nhưng điều này sẽ rất kém hiệu quả, vì vậy chúng tôi coi rằng tốc độ ổ sao lưu gần bằng tốc độ ổ cơ sở dữ liệu, không cao hơn hoặc thấp hơn nhiều.
Để đơn giản hóa việc đánh giá tốc độ, chúng tôi chỉ lấy kích thước tệp sao lưu và chia cho thời gian sao lưu. Kết quả sẽ tính bằng “megabyte mỗi giây”. Nhưng để đánh giá giá trị thu được so với các hệ thống khác, cần có một phép đo tham chiếu nào đó.
Chúng tôi lấy một máy tính để bàn trung bình làm tham chiếu, có cơ sở dữ liệu trên RAID1 gồm 2 ổ HDD SATA3 và sao lưu trên một ổ HDD SATA3 riêng biệt (tốc độ đọc tuần tự của RAID1 này khoảng 180mb/giây và ~150mb/giây cho ổ HDD sao lưu).
Ở đây, việc sao lưu cơ sở dữ liệu 31gb có kích thước 21gb và sao lưu ở chế độ một người dùng (không ai làm việc trên máy tính đó) mất 18 phút, tốc độ sao lưu là 19 megabyte mỗi giây.
Vì đây không phải là một máy chủ mạnh, mà chỉ là một máy tính để bàn (lắp ráp 2 hoặc 3 năm trước), chúng tôi có thể sử dụng tốc độ sao lưu này làm tham chiếu, coi nó là bình thường và có thể là mức tối thiểu cho phép đối với các hệ thống sản xuất.
Tiếp theo, chúng tôi đã phân tích tốc độ sao lưu trên 30 máy chủ khác nhau dưới sự quản lý hỗ trợ của chúng tôi, nơi kích thước tệp sao lưu không dưới 5 gigabyte.
| Hiệu suất | Tốc độ, MB/giây | Nhận xét và Ví dụ |
|---|
| Nhanh | 50-70 | Có một số hệ thống với bản sao lưu từ 38 đến 150 gigabyte. Sao lưu cơ sở dữ liệu 124 Gb trong 42 phút - đó là nhanh. | | Trung bình | 20-50 | Ở đây tốc độ trung bình khoảng 80 gigabyte trong 30-40 phút. Điều này là bình thường, và máy tính để bàn của chúng tôi cho kết quả có thể nằm trong mức này. | | Chậm | 10-20 | 463 gigabyte trong 11 giờ, 80 gigabyte trong 2 giờ, 293 gigabyte trong 5 giờ - đó là chậm, ngay cả máy tính để bàn thử nghiệm của chúng tôi còn nhanh hơn. | | Cực kỳ chậm | Dưới 10 | Điều này giống như 8.5 gigabyte trong 1 giờ. Rất chậm. |
Rõ ràng là trên một số hệ thống được nghiên cứu, việc sao lưu không được thực hiện trong điều kiện không tải trên máy chủ. Nhưng trong mọi trường hợp, nó được thực hiện trong thời gian tải tối thiểu trên máy chủ.
Để biết tải thấp có thể ảnh hưởng đến tốc độ sao lưu như thế nào, chúng tôi đã chạy 2 bản sao lưu đồng thời trên cùng một máy tính để bàn. Cả hai mất 19 phút với tốc độ 18 megabyte mỗi giây. Đây là 93% so với sao lưu một người dùng, không quá nhiều (giảm 7%) đối với các ổ HDD đơn. Nếu bạn có SSD, bạn có thể không nhận thấy sự khác biệt ngay cả khi chạy 3-4 bản sao lưu cùng một lúc.
Nhìn chung, tốc độ sao lưu từ 20 megabyte mỗi giây trở xuống có thể là nguyên nhân đáng lo ngại.
Trong trường hợp này, hoặc ổ sao lưu quá chậm, trong khi việc sao lưu nên được thực hiện càng nhanh càng tốt. Hoặc ổ cơ sở dữ liệu quá chậm, và hiệu suất tổng thể của hệ thống kém hơn mức cần thiết.
Làm thế nào để tăng tốc độ sao lưu
Nhiều người không sử dụng gbak ở tốc độ tối đa, và đôi khi có thể tăng tốc độ sao lưu chỉ với một công tắc duy nhất -se service_mgr, để sử dụng trình quản lý dịch vụ bên trong engine Firebird.
Dòng lệnh được khuyến nghị để sao lưu nhanh như sau, cho cả Firebird 2.5 và Firebird 3.0:
gbak -se localhost:service_mgr -b -g -user USERNAME -pass password Disk:\Path\Database.fdb Disk:\Path\backup.fbk
Thêm các mẹo và thủ thuật về hiệu suất tổng thể: