bup-memtest - kiểm tra số liệu thống kê sử dụng bộ nhớ bup
bup memtest [options...]
bup memtest mở danh sách chỉ mục gói trong kho lưu trữ bup của bạn, sau đó tìm kiếm danh sách cho một loạt đối tượng không tồn tại, in số liệu thống kê sử dụng bộ nhớ sau mỗi chu kỳ.
Do cách thức hoạt động của các hệ thống Unix, đầu ra thường sẽ hiển thị một giá trị lớn (và không thay đổi) trong cột VmSize, bởi vì việc ánh xạ các tệp chỉ mục ở vị trí đầu tiên chiếm một lượng không gian địa chỉ ảo nhất định. Tuy nhiên, việc sử dụng bộ nhớ ảo này là hoàn toàn ảo; nó không lấy bất kỳ RAM nào của bạn. Theo thời gian, bup sử dụng các phần của chỉ mục cần được tải từ đĩa và đây là nguyên nhân gây ra sự gia tăng trong cột VmRSS.
đặt số lượng đối tượng để tìm kiếm trong mỗi chu kỳ (tức là trước khi in một dòng đầu ra)
đặt số chu kỳ (nghĩa là số dòng đầu ra sau lần đầu tiên). Dòng đầu tiên của đầu ra luôn là 0 (nghĩa là đường cơ sở trước khi tìm kiếm bất kỳ đối tượng nào).
bỏ qua mọi tệp .midx được tạo bởi bup midx. Điều này cho phép bạn so sánh hiệu suất bộ nhớ có và không sử dụng midx.
tìm kiếm các đối tượng hiện có thay vì tìm kiếm các đối tượng ngẫu nhiên không tồn tại. Điều này có thể ảnh hưởng lớn đến việc sử dụng bộ nhớ và hiệu suất. Lưu ý rằng hầu hết thời gian, bup save dành phần lớn thời gian để tìm kiếm các đối tượng không tồn tại, vì những đối tượng hiện có có thể nằm trong các tệp chưa sửa đổi mà chúng tôi sẽ không cố gắng sao lưu. Vì vậy, hành vi mặc định phản ánh hiệu suất bup thực chính xác hơn. Tuy nhiên, bạn vẫn có thể muốn tùy chọn này chỉ để đảm bảo rằng bạn không làm cho việc tìm kiếm các đối tượng hiện có trở nên tồi tệ hơn nhiều so với trước đây.
$ bup memtest -n300 -c5
PackIdxList: using 1 index.
VmSize VmRSS VmData VmStk
0 20824 kB 4528 kB 1980 kB 84 kB
300 20828 kB 5828 kB 1984 kB 84 kB
600 20828 kB 6844 kB 1984 kB 84 kB
900 20828 kB 7836 kB 1984 kB 84 kB
1200 20828 kB 8736 kB 1984 kB 84 kB
1500 20828 kB 9452 kB 1984 kB 84 kB
$ bup memtest -n300 -c5 --ignore-midx
PackIdxList: using 361 indexes.
VmSize VmRSS VmData VmStk
0 27444 kB 6552 kB 2516 kB 84 kB
300 27448 kB 15832 kB 2520 kB 84 kB
600 27448 kB 17220 kB 2520 kB 84 kB
900 27448 kB 18012 kB 2520 kB 84 kB
1200 27448 kB 18388 kB 2520 kB 84 kB
1500 27448 kB 18556 kB 2520 kB 84 kB Khi tối ưu hóa lập chỉ mục bup, mục tiêu đầu tiên là giữ cho VmRSS ở mức thấp hợp lý. Tuy nhiên, cuối cùng có thể cần phải hoán đổi tất cả các chỉ mục, đơn giản vì bạn đang tìm kiếm nhiều đối tượng và điều này sẽ khiến RSS của bạn cuối cùng phát triển lớn bằng VmSize.
Từ khóa ở đây là cuối cùng. Miễn là VmRSS phát triển chậm một cách hợp lý, số lượng hoạt động của đĩa gây ra bằng cách truy cập các chỉ mục gói là khá nhỏ. Nếu nó phát triển nhanh, thì bụp có thể sẽ dành phần lớn thời gian để tráo đổi dữ liệu chỉ mục từ đĩa thay vì thực sự chạy bản sao lưu của bạn, vì vậy các bản sao lưu sẽ chạy rất chậm.
Mục đích của bup memtest là cho bạn biết mức độ sử dụng bộ nhớ của bạn đang tăng nhanh như thế nào và giúp tối ưu hóa bup để sử dụng bộ nhớ tốt hơn. Nếu bạn gặp vấn đề về bộ nhớ, bạn có thể được yêu cầu gửi kết quả của bup memtest để giúp chẩn đoán vấn đề.
Mẹo: hãy thử sử dụng bup midx -a hoặc bup midx -f để xem liệu nó có giúp giảm mức sử dụng bộ nhớ của bạn không.
Thông tin bên lề: việc sử dụng bộ nhớ chỉ mục trong bup (hoặc git) chỉ thực sự là vấn đề khi thêm một số lượng lớn các đối tượng chưa từng thấy trước đó. Điều này là do đối với từng đối tượng, chúng tôi cần xác nhận hoàn toàn rằng đối tượng đó chưa có trong cơ sở dữ liệu, điều này yêu cầu chúng tôi phải tìm kiếm trong tất cả các chỉ mục gói hiện có để đảm bảo rằng không có chỉ mục nào chứa đối tượng được đề cập. Trong trường hợp rõ ràng hơn là tìm kiếm các đối tượng do tồn tại, các đối tượng được tìm kiếm thường có liên quan theo một cách nào đó, có nghĩa là tất cả chúng có thể tồn tại trong một số lượng nhỏ tệp gói, vì vậy việc sử dụng bộ nhớ sẽ bị hạn chế chỉ trong các chỉ mục tệp gói đó.
Vì người dùng git thường không thêm nhiều tệp trong một lần chạy, nên git không thực sự cần một chương trình như bup midx. mặt khác, bup dành phần lớn thời gian để sao lưu các tệp mà nó chưa từng thấy trước đây, do đó, kiểu sử dụng bộ nhớ của nó cũng khác.
bup-midx(1)
Một phần của bộ bup(1).
Avery Pennarun