Tôi có thể làm gì để tăng tốc commeepo?


8

Chúng tôi đang sử dụng kho lưu trữ yum để phân phối phần mềm của chúng tôi cho các phiên bản sản xuất của chúng tôi. Thật không may, commeepo đang trở thành một nút cổ chai và chúng tôi chỉ có 469 gói trong kho lưu trữ.

$ time createrepo /opt/tm-yum-repo
Spawning worker 0 with 469 pkgs
Workers Finished
Gathering worker results

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

real    0m43.188s
user    0m37.798s
sys 0m1.296s

Tôi có thể làm gì để làm cho nó nhanh hơn?


Tại sao thời gian commepo lại quan trọng?
ewwhite

1
Các nhà phát triển đang chờ mã của họ đi vào hoạt động. Chúng tôi đã chuyển từ mô hình "rsync sang hộp sống" sang mô hình vòng / phút và họ đang phàn nàn rằng bây giờ phải mất vài phút để sử dụng một vài giây. Tôi hơi đồng cảm với hoàn cảnh của họ. Nhưng chỉ phần nào :)
jsd

Cảm ơn đã giải thích. Tôi không thể biết đây có phải là sự chậm trễ một lần hay không.
ewwhite

Vui lòng gửi kết quả "sau khi tối ưu hóa" của bạn để chúng tôi có thể xem thời gian tối ưu hóa đã tiết kiệm được bao nhiêu :)
Joshua Miller

Sử dụng các tùy chọn "--cachedir = cache --update --workers 4" đã giảm thời gian từ 50 giây xuống 15 giây, vì vậy chiến thắng rất lớn! Cảm ơn những lời đề nghị rất hữu ích, các bạn!
jsd

Câu trả lời:


9

Các --cachedirtùy chọn do dmourati trong câu trả lời của mình sẽ giúp bạn, nhưng bạn cũng nên sử dụng --update, đặc biệt là nếu bạn không thay thế tất cả 469 gói cùng một lúc.

       --update
              If metadata already exists  in  the  outputdir  and  an  rpm  is
              unchanged  (based on file size and mtime) since the metadata was
              generated, reuse the existing metadata rather than recalculating
              it.  In  the  case  of a large repository with only a few new or
              modified rpms this can significantly reduce I/O  and  processing
              time.

Ngoài ra, hãy xem xét thực hiện một repo riêng cho gói này nếu triển khai nó theo cách này thực sự nhạy cảm với thời gian và --updatekhông giúp đủ.


6

Từ trang web của commeepo, bạn sẽ thấy một tùy chọn cho một bộ đệm.

-c --cachedir <path>
              Specify a directory to use as a cachedir. This allows createrepo
              to create a cache of checksums of packages in the repository. In
              consecutive runs of createrepo over the same repository of files
              that  do  not  have  a  complete change out of all packages this
              decreases the processing time dramatically.

Tôi sẽ bắt đầu ở đó.

Nếu điều đó không tăng tốc đủ tốc độ, tôi sẽ xem xét SSD hoặc tmpfs .


4

Bạn đã thử sử dụng - công nhân cho CPU đa lõi chưa? Thông thường tôi sử dụng - công nhân 4 để sinh ra 4 chủ đề của commeepo


2

Sử dụng cTHERepo_c , C thực hiện c [epo


1
Chào mừng đến với SE. vui lòng thêm một số thông tin hoặc liên kết đến các nguồn để làm cho câu trả lời của bạn hữu ích hơn.
rubo77
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.