সারসংক্ষেপ
আপনি কীভাবে স্থানীয় ডিস্ক / ফাইল সিস্টেম থেকে লিনাক্স উভয়কে কনফিগার করতে পারেন এবং একই সাথে কোনও নেটওয়ার্ক শেয়ারে লিখতে পারেন, কোনও তথ্য নেটওয়ার্কের উপরে না যাওয়ার সময় পড়ার বিপরীতে, তারপরে লোকাল ডিস্ক থাকা অবস্থায় নেটওয়ার্কের মাধ্যমে সেই ডেটা প্রেরণ করা যায় অলস?
কেবলমাত্র একটি অপারেশন এবং তারপরে অন্যটি বিকল্প পদ্ধতিতে সঞ্চালনের পরিবর্তে একই সাথে পড়া এবং লেখা আরও দ্রুত।
বিস্তারিত
আমি একটি লিনাক্স মেশিনে স্থানীয় ডিস্ক থেকে প্রচুর পরিমাণে ডেটা নাস ডিভাইসে স্থানান্তরিত করছি।
আমি ব্যবহার করছি rsync
মূলত কপি করতে /srv/data
বা /mnt/nas
, যা CIFS mount- র।
এটি শুরু হয়েছিল 100MB / সেকেন্ডে পড়া এবং 100MB / সেকেন্ডে নাসকে লেখা (গিগাবিট নেটওয়ার্কের সীমা), একই সাথে পড়া এবং লেখা উভয়ই শুরু হয়েছিল।
তবে এখন, কয়েক ঘন্টা পরে, আমি দেখতে পাচ্ছি যে এটি স্থানীয় ডিস্ক থেকে পড়ছে, তারপরে এটি এনএএস-এ লেখার সময় পড়া বন্ধ করে, যখন যখন এনএএস-তে লেখার জন্য আরও কোনও ডেটা নেই, তখন এটি ডিস্ক থেকে পড়া শুরু করে আবার। ডিস্কটি পড়ার সময় নেটওয়ার্ক অলস থাকে এবং নেটওয়ার্ক ব্যবহৃত অবস্থায় ডিস্কটি অলস থাকে।
বলা বাহুল্য, 200MB পড়ার পরে 200MB লেখা পড়া এবং একই সাথে 200MB লেখার চেয়ে অনেক বেশি সময় নেয়।
আমি কীভাবে কার্নেলটি এমনভাবে কনফিগার করতে পারি যে এটি একই সাথে পড়া এবং লেখার পূর্বের আচরণের সাথে লেগে যায়, একসাথে কেবলমাত্র একটি ক্রিয়াকলাপ সম্পাদন করার পরে পরিবর্তনের পরিবর্তে?
কিছু পর্যবেক্ষণ: যখন স্থানীয় ডিস্কটি 100 + এমবি / সেকেন্ডে সমস্ত কিছু সমান্তরালভাবে ঘটেছিল ঠিক তখনই মনে হয়, তবে একবারে ডিস্কটি ধীর হয়ে যায় (কোনও কারণে এখন কেবলমাত্র 20MB / সেকেন্ডে যাচ্ছে বলে মনে হচ্ছে) তখনই এই পড়ুন / লেখেন স্যুইচিং হ'ল মনে হচ্ছে।
আমি sync
প্রতি কয়েক সেকেন্ডে ম্যানুয়ালি দৌড়াতে পারি যে লেখাগুলি পঠনের সমান্তরালভাবে ঘটতে পারে (যদিও স্পষ্টতই হ্রাসের গতিতে) তবে sync
একটি while
লুপ রেখে যাতে এটি প্রতি পাঁচ সেকেন্ডে চলে তবে সঠিক সমাধানটির মতো মনে হয় না ...
কার্নেলটি প্রায় 1 গিগাবাইট ডেটা ক্যাশে করছে এবং তারপরে এটি যত তাড়াতাড়ি সম্ভব নেটওয়ার্কে লিখে ফেলতে পারে - যা ভাল - আমি কেবল বুঝতে পারছি না যে ডেটা পাঠানোর সময় স্লো ডিস্কটি পড়া বন্ধ করা দরকার কেন? অন্তর্জাল.