ক্রিমরেপো গতি বাড়ানোর জন্য আমি কী করতে পারি?


8

আমরা আমাদের উত্পাদন উদাহরণগুলিতে আমাদের সফ্টওয়্যার বিতরণ করতে একটি yum সংগ্রহস্থল ব্যবহার করছি। দুর্ভাগ্যক্রমে, ক্রিয়েরেপো একটি বাধা হয়ে উঠছে, এবং আমাদের কাছে কেবল সংগ্রহস্থলটিতে 469 টি প্যাকেজ রয়েছে।

$ 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

এটি দ্রুত করার জন্য আমি কী করতে পারি?


কেন ক্রিয়েটারপোর সময় বিবেচ্য?
ew white

1
বিকাশকারীরা তাদের কোডটি লাইভ হওয়ার জন্য অপেক্ষা করছে। আমরা একটি "আরএসএনসি টু লাইভ বাক্স" মডেল থেকে আরপিএম মডেলটিতে গিয়েছিলাম এবং তারা অভিযোগ করছেন যে এটি এখন কয়েক মিনিট সময় নেয় যেখানে এটি কয়েক সেকেন্ড সময় নেয়। আমি তাদের দুর্দশার প্রতি কিছুটা সহানুভূতিশীল। তবে কেবল কিছুটা :)
jsd

ব্যাখ্যার জন্য ধন্যবাদ. আমি জানাতে পারিনি যে এটি এক সময়ের দেরি কিনা।
ew white

দয়া করে আপনার "অপ্টিমাইজেশনের পরে" ফলাফলগুলি পোস্ট করুন যাতে আমরা দেখতে পারি যে অপ্টিমাইজেশনগুলি কতটা সময় সাশ্রয় করেছে :)
জোশুয়া মিলার

"--Cachedir = ক্যাশে - আপডেট - ওয়ার্কার্স 4" বিকল্পগুলি ব্যবহার করে সময়টি 50 সেকেন্ড থেকে 15 সেকেন্ডে হ্রাস পেয়েছে, তাই বিশাল জয়! খুব সহায়ক পরামর্শের জন্য ধন্যবাদ, বন্ধুরা!
jsd

উত্তর:


9

--cachedirতার উত্তরে dmourati কর্তৃক প্রদত্ত বিকল্প আপনাকে সাহায্য করবে, কিন্তু আপনি ব্যবহার করা উচিত --update, বিশেষ করে যদি আপনি একসাথে সব 469 প্যাকেজ প্রতিস্থাপন করা হয় না।

       --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.

এছাড়াও, এই প্যাকেজটির জন্য এইভাবে স্থাপন করা সত্যই সময়-সংবেদনশীল এবং --updateপর্যাপ্ত সহায়তা না করে যদি এই প্যাকেজের জন্য পৃথক রেপো তৈরির কথা বিবেচনা করুন ।


6

ক্রিয়েরেপো ম্যানপেজ থেকে, আপনি ক্যাশেডির জন্য একটি বিকল্প দেখতে পাবেন।

-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.

আমি সেখানে শুরু করতাম।

যদি এটি পর্যাপ্ত পরিমাণে ক্রিয়েট্রপোকে গতি না দেয় তবে আমি এসএসডি বা টিএমপিএফগুলির দিকে নজর দেব ।


4

আপনি কি মাল্টি কোর সিপিইউয়ের জন্য ওয়ার্কার্স ব্যবহার করার চেষ্টা করেছেন? সাধারণত আমি - ওয়ার্কার্স 4 টি থ্রেড তৈরি করার জন্য স্প্রে করতে ব্যবহার করি


2

ব্যবহারের createrepo_c , createrepo সি বাস্তবায়ন


1
এসই তে স্বাগতম। আপনার উত্তরটিকে আরও সহায়ক করতে দয়া করে কিছু তথ্য বা উত্সগুলিতে লিঙ্ক যুক্ত করুন।
rubo77
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.