ছোট ফাইলগুলির জন্য কীভাবে আরএসআইএনসি দ্রুত করা যায়


15

আমি নিম্নলিখিত কমান্ডটি ব্যবহার করে হাজার হাজার ছোট ফাইলকে একটি সার্ভার থেকে অন্য সার্ভারে স্থানান্তর করার চেষ্টা করছি:

rsync -zr --delete /home/user/ user@10.1.1.1::backup

বর্তমানে স্থানান্তরটি দীর্ঘ সময় নেয় (আমি এটি সময় নিই না)। এটি দ্রুত করার কোনও উপায় আছে? আমি অন্য সরঞ্জাম ব্যবহার করা উচিত? আমার কি আরএসইএনসি প্রোটোকল ব্যবহারের পরিবর্তে এসএসএসের মাধ্যমে আরএসইএনসি ব্যবহার করা উচিত?


এটা কি আসলেই শত? কম হিসাবে কয়েক হাজার?
জোড়াদেচি

এর থেকে আরও কয়েকটি ... 475,576 মোট 9.3 জিবি
নুডলস

এটি ফাইল সিস্টেমের স্তরে কাজ করে এমন কোনও সরঞ্জাম ব্যবহার করে চুষতে চলেছে। আমি সন্দেহ করি আপনি যদি কিছু প্রোফাইলিং করেন তবে আপনি উল্লেখযোগ্য পরিমাণে সময় ব্যয় করতে দেখবেন stat()
জোড়াদেচি

-aতবে না কেন -r?
কামে

উত্তর:


13

আপনার বাধাটি নির্ধারণ করতে হবে। এটি আরএসসিএন নয় এটি সম্ভবত আপনার নেটওয়ার্ক ব্যান্ডউইথ নয়। @ জোরেডাচে প্রস্তাবিত হিসাবে এটি সম্ভবত সমস্ত stat()কল দ্বারা বিপুল সংখ্যক আইওপ উত্পন্ন হয় । যে কোনও সিঙ্কিং সরঞ্জামের জন্য ফাইলগুলি স্থিত করতে হবে। সিঙ্ক iostatকরার সময় রান যাচাই করতে।

সুতরাং প্রশ্ন হয়ে যায়; আমি স্ট্যাটাকে কীভাবে অনুকূল করব? দুটি সহজ উত্তর:

  1. একটি দ্রুত ডিস্ক সাবসিস্টেম (উভয় হোস্টে প্রয়োজন হলে) এবং পাবেন
  2. আপনার ফাইল সিস্টেমে টিউন করুন (উদাহরণস্বরূপ ext3 মাউন্ট সহ noatimeএবং একটি যোগ করুন dir_index)।

যদি কোনও সুযোগে এটি আপনার ডিস্কের সীমা না হয় তবে সেক্ষেত্রে আপনি দির গাছকে একাধিক স্বতন্ত্র গাছগুলিতে বিভক্ত করতে এবং একাধিক আরএসসিএনসি চালাতে পারেন experiment


1
ধন্যবাদ, আমি dir_index সন্ধান করব এবং আমি কীভাবে চলব তা দেখতে পাব (আমরা ইতিমধ্যে নোয়াটেম ব্যবহার করেছি)। দেখে মনে হচ্ছে ডিস্ক io হ'ল বাধা, তবে আমরা ইতিমধ্যে RAID 5-এ 15k SAS ড্রাইভ চালাচ্ছি The পরবর্তী পদক্ষেপটি এসএসডি হবে, তবে আমাদের হোস্টিং সংস্থা আমাদের এখনও সেই বিকল্পটি দেয় না।
নুডলস

5

ছোট ফাইলগুলির জন্য কম্প্রেশন খুব কার্যকর নয় (বলুন, 100 বাইটের চেয়ে কম)। ছোট ফাইলগুলির জন্য, কখনও কখনও সংকোচিত সংস্করণ মূলের থেকেও বড় হতে পারে। পতাকা rsyncছাড়াই কমান্ড চেষ্টা করুন -z

sshসুরক্ষার পক্ষে ভাল, তবে স্থানান্তরটি দ্রুত করে তুলবে না। প্রকৃতপক্ষে, এনক্রিপশন / ডিক্রিপশন প্রয়োজনের কারণে এটি স্থানান্তরকে ধীর করে দেবে।

rsyncএটি প্রথমবার চালানো দ্রুত মনে হচ্ছে না কারণ স্থানান্তর করার জন্য প্রচুর ডেটা রয়েছে। যাইহোক, আপনি যদি এই কমান্ডটি পর্যায়ক্রমে চালানোর পরিকল্পনা করেন তবে পরবর্তী রানগুলি তত দ্রুত হতে পারে যেহেতু rsyncকোনও পরিবর্তন হয়নি এমন ফাইল স্থানান্তর না করার বিষয়ে স্মার্ট।


আপনি যদি কেবল rsyncক্লায়েন্ট ব্যবহার করেন তবে এটি পর্দার পিছনে এসএসএইচ ব্যবহার করবে। আরএসসিএন ব্যবহার করার সময় আপনাকে এনক্রিপশন অক্ষম করার জন্য আপনার পথ থেকে বেরিয়ে যেতে হবে। দেখুন: stackoverflow.com/a/1821574/64911
mlissner

1

আপনি আরএসএনসি এর কোন সংস্করণ ব্যবহার করছেন? Older.০.০ (উভয় প্রান্তে) এর চেয়ে পুরানো যে কোনও কিছুতে বর্ধিত ফাইললিস্ট বৈশিষ্ট্য নেই, যা বড় স্থানান্তরকে গতি দেয়।


উভয় সার্ভারে rsync 3.0.5 ব্যবহার করা হচ্ছে।
নুডলস

1

যোগ -v --progressআপনার rsync কমান্ড লাইন থেকে

rsync 2 টি পদক্ষেপে সম্পন্ন করা হয়:

  1. উভয় প্ল্যাটফর্মের সমস্ত ফাইলের আকার এবং এমডেটের তুলনায় গভীর ব্রাউজ করুন
  2. প্রকৃত স্থানান্তর করুন

যদি আপনি নেস্টেড ডিরেক্টরিগুলিতে হাজার হাজার ছোট ছোট ফাইলকে আরএসআইএন করেন তবে এটি সহজভাবে হতে পারে যে আরএসইএনসি বেশিরভাগ সময় সাবডিয়ারগুলিতে যায় এবং সমস্ত ফাইল সন্ধান করে

যদি ব্রাউজিংয়ের জন্য সময় ব্যয় না করা হয় তবে সময়টি প্রতিটি নতুন ফাইল স্থানান্তর শুরু করার ক্ষেত্রে সমস্ত বিলম্বের কারণে যুক্ত হতে পারে।


1

যদি ext3 বা ext4 ফাইল সিস্টেমগুলি জড়িত থাকে তবে দেখুন, উভয়ই dir_index বৈশিষ্ট্য সক্ষম করেছে! এটি আমার ক্ষেত্রে আরএসসিএন-থ্রুপুট ত্রিগুণ হয়েছে।

আমার উত্তরে বিশদটি এখানে দেখুন: /server//a/759421/80414

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