এমন কোনও কমান্ড রয়েছে যা লিনাক্সকে এনএফএস শেয়ারের একটি ফাইলের ক্যাশে ফ্লাশ করতে বাধ্য করবে?


14

স্ট্যাকওভারফ্লো সম্পর্কিত এই প্রশ্নের সাথে সম্পর্কিত , আমি ভাবছি যে আমার জন্য এনএফএস শেয়ারে থাকা কোনও ফাইলের সর্বাধিক টু-ডেট কপি দেখার জন্য এনএফএস ক্যাশে / জোর করে লিনাক্সকে ফ্লাশ করার কোনও উপায় আছে কিনা?

আমার একটি পরিস্থিতি রয়েছে যেখানে চারটি অ্যাপাচি সার্ভার একই ডিরেক্টরিটিকে এনএফএসের মাধ্যমে মাউন্ট করে এবং যখন একটি সার্ভার কোনও ফাইলে পরিবর্তন করে, অন্য সার্ভারগুলিকে পরিবর্তনটি দেখতে প্রায় 5 - 10 সেকেন্ড সময় লাগে। যদি এই উইন্ডোর মধ্যে সেই ফাইলটিতে দ্বিতীয় পরিবর্তন করা হয় তবে এটি প্রথম পরিবর্তনটি ওভাররাইট করে।

fstabফাইলসিস্টেম জন্য এন্ট্রি হল:

172.16.1.15:/home               /media/home     nfs     vers=3,defaults,noauto,sync,acregmin=1          0       0

এমন কোনও কমান্ড রয়েছে যা লিনাক্সকে এনএফএস শেয়ারের একটি ফাইলের ক্যাশে ফ্লাশ করতে বাধ্য করবে?


আপনি কী অ্যাপাচি ক্যাচিং মেকানিজম ব্যবহার করছেন?
ইউজারম্যান

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

উত্তর:


12

এই আইটেমগুলি পরীক্ষা করুন, এবং দেখুন আপনার জন্য কোনও কাজ কিনা:

  1. ক্লায়েন্টে , যদি আপনি ইতিমধ্যে আপনার এনএফএস ফাইল সিস্টেমের জন্য লাইনের বিকল্প কলামে ctoবিকল্পটি ব্যবহার না করে থাকেন তবে এটি যুক্ত করুন। নিকট-টু-ওপেনের মাধ্যমে ফাইলগুলি খোলার জন্য এনএফএস ক্লায়েন্টকে বলছে, এটি যখনই ফাইল খুলবে তখন তা রিফ্রেশ করে তোলে।/etc/fstabcto

  2. সার্ভারে , আপনার ফাইল সিস্টেমটি syncবিকল্পের সাথে রফতানি হয়েছে কিনা তা নিশ্চিত করুন async। সিঙ্ক্রোনাস লেখার সাথে, ক্লায়েন্ট ফাইলটি বন্ধ হয়ে গেলে ডিস্কে ফ্লাশ করবে। ( বা এনএফএস ভি 3 সহ, যখনই কোন কমিট () করা হয় )। সেভাবে কোনও পারফরম্যান্স হিট হতে পারে তবে আপনি যদি এনএফএস ফাইল সিস্টেমকে লেখেন, আপনি অবশ্যই syncসেটটি চান ।

  3. সেই স্ট্যাকওভারফ্লো পোস্টের হিল অনুসরণ করে, O_DIRECT সহ খোলার ফাইলটি কেবল তখনই কাজ করবে যদি কার্নেলটি CONFIG_NFS_DIRECTIO দিয়ে সংকলিত হয়।

  4. এছাড়াও, আপনার httpd.conf ফাইলে আপনার নীচের সেটিংস রয়েছে তা নিশ্চিত করুন:

    • EnableMMAP off
    • EnableSendfile off

    অ্যাপাচি পারফরম্যান্স টিউনিং ডকুমেন্টেশন থেকে:

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

ধন্যবাদ! এগুলি দুর্দান্ত পরামর্শ। আমি ctoক্লায়েন্ট ব্যবহার করছি না এবং আমি এটি চেষ্টা করব। আমার syncনেই বা asyncসার্ভারে নেই; আমি শুধু যোগ syncO_DIRECTআমাকে সাহায্য করেনি কারণ এটি আসলে পিএইচপি যা এই ফাইলগুলি পড়ছে এবং এটি যে কোনওভাবেই O_DIRECTআমি খুজে পাচ্ছি তা এটি খুলতে পারে না ।
জোশ

@ জোশ, এটি কি আপনার সমস্যার সমাধান করেছে? আমরা একই ইস্যুতে অবরুদ্ধ! আপনি কি এই পোস্টটি আপডেট করতে পারেন?
rafa.ferreira

3

প্রদত্ত প্রক্রিয়াটির মধ্যে, কোনও ফাইলের মূল ডিরেক্টরিতে ওপেনডির এবং ক্লোডির কল করা এনএফএস ক্যাশে অবৈধ করে দেয়। আমি একটি কাজের সময়সূচী প্রোগ্রাম করার সময় এটি ব্যবহার করেছি। খুব, খুব সহায়ক। চেষ্টা করে দেখুন!


-1

যদি আপনি প্রদত্ত ফাইলটি একটি নন-ক্যাশেড প্রোগ্রামে (vim বা emacs এর মতো) খোলেন এবং তারপরে বন্ধ করে দিন, এটি সেই ফাইলটির জন্য ক্যাশে আপডেট / সাফ করবে


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