এনএসএফের চেয়ে আরএসএনসি দ্রুত কেন?


40

কয়েক দিন আগে আমি কিছু অদ্ভুত কিছু লক্ষ্য করেছি (কমপক্ষে আমার জন্য)। আমি একই ডেটা অনুলিপি করে সিএসএনসি চালিয়েছিলাম এবং এটি ডিলিট করে পরে এনএফএস মাউন্টে ডেকে আছি, বলা হয় /nfs_mount/TEST। এটি /nfs_mount/TESTহোস্ট করা / থেকে রফতানি করা হয় nfs_server-eth1। উভয় নেটওয়ার্ক ইন্টারফেসের এমটিইউ 9000, এর মধ্যে সুইচটি জাম্বো ফ্রেমগুলিকেও সমর্থন করে। আমি যদি করি তবে rsync -av dir /nfs_mount/TEST/আমি নেটওয়ার্ক ট্রান্সফার গতি এক্স এমবিপিএস পাবো। আমি যদি করি তবে rsync -av dir nfs_server-eth1:/nfs_mount/TEST/আমি নেটওয়ার্ক ট্রান্সফার গতি কমপক্ষে 2 এক্স এমবিপিএস পাই। আমার এনএফএসের মাউন্ট অপশনগুলি nfs rw,nodev,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountvers=3,mountproto=tcp

নীচের লাইন: উভয় স্থানান্তর একই নেটওয়ার্ক সাবনেট, একই তারের, একই ইন্টারফেসের উপর দিয়ে যায়, একই ডেটা পড়ে, একই ডিরেক্টরিতে লিখতে পারে Only

ক্লায়েন্টটি উবুন্টু 10.04, সার্ভার উবুন্টু 9.10।

আরএসসিএন কীভাবে এলো? কীভাবে এনএফএসের সেই গতি মেলে?

ধন্যবাদ

সম্পাদনা করুন: দয়া করে নোট করুন আমি এনএফএস শেয়ারে লিখতে বা এসএসএইচ এনএফএস সার্ভারে লিখতে এবং স্থানীয়ভাবে সেখানে লিখতে আমি rsync ব্যবহার করি। আমি দু'বারই করি rsync -av, পরিষ্কার গন্তব্য ডিরেক্টরি দিয়ে শুরু করে। কাল আমি প্লেইন কপি দিয়ে চেষ্টা করব।

সম্পাদনা 2 (অতিরিক্ত তথ্য): ফাইলের আকার 1KB-15MB থেকে শুরু করে। ফাইলগুলি ইতিমধ্যে সংকুচিত হয়েছে, আমি কোনও সাফল্য না করে সেগুলি আরও সংকুচিত করার চেষ্টা করেছি। আমি তা tar.gzথেকে ফাইল তৈরি করেছি dir। নিদর্শনটি এখানে:

  • rsync -av dir /nfs_mount/TEST/ = ধীরতম স্থানান্তর;
  • rsync -av dir nfs_server-eth1:/nfs_mount/TEST/= জাম্বো ফ্রেমগুলি সহ দ্রুততম আরএসসিএনসি সক্ষম; জাম্বো ফ্রেম ছাড়াই কিছুটা ধীর গতিযুক্ত, তবে এখনও সরাসরি এনএফএসের তুলনায় উল্লেখযোগ্যভাবে দ্রুত;
  • rsync -av dir.tar.gz nfs_server-eth1:/nfs_mount/TEST/ = এর নন-টার.gz সমতুল্য সমান;

cpএবং এর সাথে টেস্টগুলি scp:

  • cp -r dir /nfs_mount/TEST/= এর চেয়ে সামান্য দ্রুত rsync -av dir /nfs_mount/TEST/তবে এখনও তুলনায় উল্লেখযোগ্য ধীর rsync -av dir nfs_server-eth1:/nfs_mount/TEST/
  • scp -r dir /nfs_mount/TEST/= দ্রুততম সামগ্রিকভাবে, সামান্য পরাস্ত rsync -av dir nfs_server-eth1:/nfs_mount/TEST/;
  • scp -r dir.tar.gz /nfs_mount/TEST/ = এর নন-টার.gz সমতুল্য সমান;

উপসংহার, এই ফলাফলের উপর ভিত্তি করে: এই পরীক্ষার জন্য টার.gz বৃহত ফাইল বা অনেকগুলি ছোট ফাইল ব্যবহার করা হলে উল্লেখযোগ্য পার্থক্য নেই। জাম্বো ফ্রেম চালু বা বন্ধ এছাড়াও প্রায় কোনও পার্থক্য করে না। cpএবং scpতাদের নিজ নিজ rsync -avসমকক্ষ তুলনায় দ্রুত । সরাসরি রফতানি এনএফএস শেয়ারে লেখার পদ্ধতিটি নির্বিশেষে এসএসএইচে একই ডিরেক্টরিতে লেখার চেয়ে উল্লেখযোগ্যভাবে ধীর (কমপক্ষে 2 বার) is

মধ্যে পার্থক্য cpএবং rsyncএই ক্ষেত্রে প্রাসঙ্গিক নয়। আমি চেষ্টা করেছি cpএবং scpকেবল তারা একই প্যাটার্নটি দেখায় এবং তারা তা করে তা দেখার জন্য - 2 এক্স পার্থক্য।

আমি যেমন ব্যবহার করি rsyncবা cpউভয় ক্ষেত্রেই, আমি বুঝতে পারি না কী এসএসএইচ-র একই কমান্ডগুলির স্থানান্তর গতিতে এনএফএসকে বাধা দেয়।

কীভাবে এনএফএস শেয়ারে এসএসএইচে একই জায়গায় লেখার চেয়ে 2X ধীর হয়?

Edit3 (NFS সার্ভারের জন্য / etc / রপ্তানির অপশন): rw,no_root_squash,no_subtree_check,sync। ক্লায়েন্টের জন্য / proc / মাউন্ট শো: nfs rw,nodev,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountvers=3,mountproto=tcp

সবাইকে ধন্যবাদ!


অনেকগুলি ছোট ফাইল এবং একটি বড় ফাইলের জন্য কি একই ফলাফল হওয়া উচিত?
Xiè Jìléi

@ নোটপেটার - মূল পোস্টে বিকল্পগুলি যুক্ত করেছে। ধন্যবাদ!
জিআর

আমি বুঝতে পারি এটি একটি পুরানো প্রশ্ন, তবে এসসিপি এবং আরএসসিএনসি-র মধ্যে একটি প্রধান পার্থক্য যা স্থানান্তর সময়ের মধ্যে সামান্য পার্থক্যের কারণ হয়ে থাকে তা হল ফাইলটি সঠিকভাবে স্থানান্তরিত হয়েছে তা দেখানোর জন্য স্বয়ংক্রিয় ফাইল স্থানান্তর চেকসাম করা। এটি আরএসসিএন-এর বিকল্পের চেয়ে আলাদা যা কোনও ফাইল হোস্টের মধ্যে আপডেট করা থাকলে তা যাচাই করার জন্য চেকসাম ব্যবহার করে। আপনি যদি কেবল নতুন ফাইলগুলি কপি করে থাকেন যা কার্যকর হয় না।
রোয়ান হকিন্স

উত্তর:


20

হতে পারে এটি ধীর স্থানান্তর গতি নয়, তবে লেখার প্রবণতা বৃদ্ধি পেয়েছে। সিঙ্কের পরিবর্তে এনএফএস শেয়ার অ্যাসিঙ্ক মাউন্ট করার চেষ্টা করুন এবং দেখুন যে এটি গতির ফাঁক বন্ধ করে দেয়। আপনি যখন ssh- এর উপর RSSync করেন তখন দূরবর্তী rsync প্রক্রিয়াটি অ্যাসিঙ্ক্রোনাসলি (দ্রুত) লিখে দেয়। কিন্তু সিঙ্ক্রোনালি মাউন্ট করা এনএফএস শেয়ারে লেখার সময়, লিখিতগুলি তাত্ক্ষণিকভাবে নিশ্চিত হওয়া যায় না: এনএফএস সার্ভার এনএসএফ ক্লায়েন্টের কাছে নিশ্চিতকরণ পাঠানোর আগে ডিস্কটি সফল হওয়ার আগেই ডিস্ক (বা সম্ভবত সম্ভবত কন্ট্রোলার ক্যাশে) আঘাত না করে অপেক্ষা করে।

যদি 'অ্যাসিঙ্ক' আপনার সমস্যার সমাধান করে, তবে সচেতন হন যে এনএফএস সার্ভারের মাঝামাঝি কিছু লিখলে আপনি খুব ভালভাবে ডিস্কের অসামঞ্জস্যপূর্ণ ডেটা দিয়ে শেষ করতে পারেন। যতক্ষণ না এই এনএফএস মাউন্টটি এই (বা অন্য কোনও) ডেটার জন্য প্রাথমিক স্টোরেজ নয়, আপনি সম্ভবত ভাল থাকবেন। অবশ্যই আপনি একই বোটে থাকতেন যদি আপনি rsync-over-ssh দৌড়ানোর সময় / পরে এনএফএস সার্ভারে প্লাগ টানেন (উদাহরণস্বরূপ, রাইস ক্যাঙ্কের এনএসএফ সার্ভার ক্রাশ হয়েছে, এনএসএফ সার্ভার ক্র্যাশ হয়েছে, আপত্তিহীন ডেটা এখন হারিয়ে গেছে ডিস্কে অসঙ্গত ডেটা রেখে))

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


1
আমি মনে করি এই উত্তরটি সঠিক। দুটি মেশিনের মিডিয়া (ডিস্ক) তুলনীয় হলে (একই RPM / ব্যান্ডউইথ / RAID কনফিগারেশন), আপনি বিপরীতমুখী অপারেশন করে এই ঘটনাটি কিনা তা সম্পর্কে ভাল ধারণা পেতে পারেন: 'rsync -av / nfs_mount / TEST / dir 'অন্যথায়, সিঙ্ক বন্ধ করে দেওয়া এবং এটি চেষ্টা করার উপায়।
স্লারিটিবার্টফেষ্ট 12'11

আমি সিঙ্ক বনাম অ্যাসিঙ্কের সাথে দ্রুত পরীক্ষা করেছিলাম এবং আমি মনে করি এই উত্তরটির সঠিক উত্তর হওয়ার বড় সম্ভাবনা রয়েছে। অ্যাসিঙ্ক নির্বাচন করা ব্যবধানটি উল্লেখযোগ্যভাবে বন্ধ করে দেয় তবে এটি এসএসএইচের চেয়ে কিছুটা ধীরে ধীরে। আমি আরও পরীক্ষা করব এবং আপনাকে বলব। অনেক ধন্যবাদ!
জিআর

3
আপডেট: আমার নতুন পরীক্ষাগুলি সিঙ্ক বনাম অ্যাসিঙ্ক এনএফএস এক্সপোর্ট বিকল্পের গতির ক্ষেত্রে উল্লেখযোগ্য পার্থক্য প্রদর্শন করেছে। এনএফএসের সাথে অ্যাসিঙ্ক লাগানো এবং rsync -av dir.tar.gz /nfs_mount/TEST/আমি প্রায় একই স্থানান্তর গতি পেয়েছিলাম rsync -av dir nfs_server-eth1:/nfs_mount/TEST/। আমি এই উত্তরটিকে সঠিক হিসাবে চিহ্নিত করব, তবে আমি আরও আগ্রহী যদি আমি আরও সেটআপটি উন্নত করতে পারি। ধন্যবাদ! ভালই হয়েছে নোপ্টার!
জিআর

22

এনএফএস হ'ল একটি শেয়ারিং প্রোটোকল, যখন রাইকিঙ্ক ফাইল স্থানান্তরের জন্য অনুকূলিত হয়েছে; আপনার লক্ষ্যগুলি ফাইলগুলিতে ভাগ করে নেওয়া অ্যাক্সেসের পরিবর্তে যত তাড়াতাড়ি সম্ভব অনুলিপি করা সম্ভব বলে প্রাথমিকভাবে জানলে এমন অনেকগুলি অপ্টিমাইজেশন রয়েছে ।

এটিতে সহায়তা করা উচিত: http://en.wikedia.org/wiki/Rsync


2
যদি আপনি হাতের আগে ডেটা জানেন (যা আপনি সাধারণত করেন) তবে আপনি -e "ssh Compression=no"দ্রুত স্থানান্তর গতি পেতে বিকল্পটি বেছে নিয়ে সংক্ষেপণটি বন্ধ করতে পারেন । সম্ভবত এটি ইতিমধ্যে সংক্রামিত ফাইলগুলি সংকুচিত করা থেকে এটি রক্ষা করবে। আমি অনেক সময় গতি লক্ষ্য করেছি।
এলএসডি

5
@lsd - ssh সংক্ষেপণ সাধারণত ডিফল্ট হিসাবে বন্ধ থাকে এবং আরএসসিএনসি জন্য প্রস্তাবিত হয় না। অনুমতি rsync বিকল্প সহ তথ্য সংকুচিত করার -z, --compress-levelএবং --skip-compressএকটি সংকুচিত পরিবহন সঙ্গে ভাল পারফরম্যান্স Tha পাবেন।
জিমবি

5

Rsync একটি ফাইল প্রোটোকল যা কেবলমাত্র ফাইলগুলির মধ্যে পরিবর্তিত বিট স্থানান্তর করে। এনএফএস হ'ল একটি রিমোট ডিরেক্টরি ডিরেক্টরি ফাইল প্রোটোকল যা প্রতিবার সবকিছু হ্যান্ডেল করে ... একরকমভাবে এসএমবির মতো। দুটি পৃথক এবং বিভিন্ন উদ্দেশ্যে। আপনি দুটি এনএফএস শেয়ারের মধ্যে স্থানান্তর করতে Rsync ব্যবহার করতে পারেন।


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

আমি ভেবেছিলাম যে আমিই দ্বিতীয় পোস্ট এবং প্রথম উল্লেখ করার জন্য যে উভয়ই বিভিন্ন লক্ষ্যকে সামনে রেখে প্রোটোকল। ঠিক আছে, আমি ভেবেছিলাম প্রশ্নের প্রথম সম্পাদনাটি কিছুটা খালি ছিল।
পিসুনাইট

3

এটা মজার. এমন একটি সম্ভাবনা যা আপনি বিবেচনা নাও করতে পারেন তা হ'ল আপনি যে ফাইলটি প্রেরণ করছেন তার সামগ্রী / ধরণ।

আপনার যদি সামান্য ফাইলের স্ক্যান্ড থাকে (যেমন পৃথক ফাইলগুলিতে ইমেলগুলি), সম্পূর্ণ এমটিইউ ব্যবহার না করার কারণে এনএফএস দক্ষতা ট্যাঙ্কিং হতে পারে (যদিও ইউডিপিতে এটি টিসিপিতে কম হবে) less

বিকল্পভাবে, আপনার কাছে অত্যন্ত সংকোচযোগ্য ফাইল / ডেটা, দ্রুত সিপিইউ এবং সিপিইউ (*) এর গতি নেই এমন একটি নেটওয়ার্ক থাকলে আপনি কেবল এসএসএস লিঙ্কের উপর অন্তর্নিহিত সংক্ষেপণ থেকে স্পিডআপ পেতে পারেন।

তৃতীয় সম্ভাবনা হ'ল ফাইলগুলি (বা এর একটি সংস্করণ) ইতিমধ্যে গন্তব্যে রয়েছে। এক্ষেত্রে স্পিডআপটি হবে কারণ আরএসসিএনসি প্রোটোকল আপনাকে ফাইলগুলি স্থানান্তর করতে বাঁচায়।

(*) এই ক্ষেত্রে 'গতি' দ্বারা, আমি সেই হারের কথা উল্লেখ করছি যেটি সিপিইউ যে হারে ডেটা সংকুচিত করতে পারে সেই হারের তুলনায় যা নেটওয়ার্ক তথ্য প্রেরণ করতে পারে, উদাহরণস্বরূপ, তারের জুড়ে 5 এমবি পাঠাতে 5 সেকেন্ড সময় লাগে, তবে সিপিইউ 5MB 1 সেকেন্ডে 1MB তে সংক্ষেপিত করতে পারে। এক্ষেত্রে আপনার সংকুচিত ডেটা প্রেরণের সময়টি 1 সেকেন্ডের চেয়ে কিছুটা কম হবে, তবে সংকোচিত ডেটা 5 সেকেন্ডের।


খুব ভালো! আমি যে ফাইলগুলির সাথে পরীক্ষা করি সেগুলি হ'ল অনেক ছোট চিত্র। এগুলি আকারে ভিন্ন হয়। আমি তাদের আরও সংকোচ করতে পারি কিনা তা আমাকে ডাবল চেক করতে হবে। ফাইলগুলি অবশ্যই গন্তব্যে উপস্থিত নেই, কারণ আমি প্রতিবার স্ক্র্যাচ থেকে শুরু করি। আগামীকাল, আমি সাধারণ cp -rবনাম দিয়ে পরীক্ষা করব rsyncএবং তারপরে এমটিইউ থেকে উপকার পেতে আমি আরও বড় ফাইলগুলি সংক্ষেপে ফাইলগুলি সংকুচিত করব। ধন্যবাদ!
grs

1

আমি ইনপুট বাড়ানোর জন্য -e "ssh Ciphers = arcfour" ব্যবহার করি।


1
একটি "-ও" দরকার। যেমন: "আরএসসিএনএইভি -e" এসএসএস-ও সিফারস = আরকফোর "উত্স গন্তব্য: / গন্তব্য /"
পিট অ্যাশডাউন

1

যদি আপনার লক্ষ্য হ'ল সমস্ত ফাইলকে এক জায়গা থেকে অন্য জায়গায় অনুলিপি করা হয় তবে তারপরে / নেটক্যাটটি দ্রুততম বিকল্প হবে। যদি আপনি জানেন যে আপনার ফাইলে (জিরো) প্রচুর পরিমাণে সাদা জায়গা রয়েছে তবে -i বিকল্পটি ব্যবহার করুন।

উত্স: tar cvif - / পাথ / থেকে / উত্স | এনসি ডিস্টিনিয়েশন পোর্টনম ডেস্টিনেশন: সিডি / পাথ / টু / সোর্স এবং & এনসি-এল পোর্টনাম | tar xvif -

যদি আপনি জানেন যে আপনার ডেটা সংকোচনযোগ্য, তবে আপনার টার কমান্ড -z -j -Ipixz এ সংক্ষেপণ ব্যবহার করুন

আমি পিক্স্জের সমান্তরাল xz এর ভক্ত, এটি দুর্দান্ত সংকোচনের প্রস্তাব দেয় এবং আমি নেটওয়ার্ক ব্যান্ডউইদথের সিপিইউর সংখ্যার সাথে তাল মিলাতে পারি। যদি আমার ধীর গতির ব্যান্ডউইথ থাকে আমি উচ্চতর সংকোচনের ব্যবহার করব তাই আমি নেটওয়ার্কের চেয়ে সিপিইউতে অপেক্ষা করবো .. যদি আমার কাছে একটি দ্রুত নেটওয়ার্ক থাকে তবে আমি খুব কম কম্প্রেশন ব্যবহার করব:

উত্স: tar cvif - / পাথ / থেকে / উত্স | pixz -2 -p12 | এনসি ডিস্টিনিশন পোর্টনাম # ট্যারে, শূন্যগুলিকে উপেক্ষা করুন, 12 সিপিইউ কোর ব্যবহার করে স্তর 2 পিক্স্জ সংক্ষেপণ নির্ধারণ: এনসি-এল পোর্টনাম | tar -Ipixz -xvif

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

আরএসআইএনসি-র হিসাবে, আমি বিশ্বাস করি যে এটি বিকল্পের সাথে টারের মতো জিরোসকে এড়িয়ে যায়, সুতরাং এটি এনএফএসের চেয়ে কম ডেটা সংক্রমণ করে। এনএফএস ডেটা সম্পর্কে অনুমান করতে পারে না তাই এনএফএস প্রোটোকল ওভারহেডের সাথে প্রতিটি বাইট প্রেরণ করতে হয়। আরএসএনসি-র কিছুটা ওভারহেড রয়েছে ..

নেটক্যাটটিতে মূলত কোনওটিই নেই .. এটি সম্পূর্ণ টিসিপি প্যাকেট প্রেরণ করবে যাতে আপনার যত্ন নেওয়া ডেটা ব্যতীত কিছুই নেই।

নেটকাটের সাহায্যে, স্ক্যাপের মতো, আপনাকে সমস্ত উত্সের ডেটা সর্বদা প্রেরণ করতে হবে, আপনি আরএসসিএন-র মতো নির্বাচন করতে পারবেন না এটি বর্ধিত ব্যাকআপ বা এই ধরণের জিনিসগুলির জন্য উপযুক্ত নয়, তবে ডেটা অনুলিপি করা বা সংরক্ষণাগারভুক্ত করার জন্য এটি ভাল।


0

আপনার কি এনএফএসশেয়ারে ফাইল লকিং সেটআপ আছে? এটি অক্ষম করা থাকলে আপনি আরও অনেক বেশি পারফরম্যান্স পেতে পারেন।


এটি সক্ষম হয়েছে কিনা তা আমি কীভাবে জানতে পারি? এটি এখানে: docstore.mik.ua/orelly/networking_2ndEd/nfs/ch11_02.htm পরামর্শ দেয় যে এনএফএস ভি 3-তে ফাইল লক করার ক্ষমতা নেই।
জিআর

-1

আমি ধরেছি বর্ধিত গতি কমপক্ষে আংশিকভাবে "আরএসসিএনসিআরসিআরসি হোস্ট: / পাথ" এর ফলে রিমোট মেশিনে প্রেরণ / গ্রহণের জন্য স্থানীয় প্রক্রিয়া তৈরি করেছে, কার্যকরভাবে আপনার I / O কে অর্ধেক কাটাবে।

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