আমার সিস্টেমের ডিস্কে পারমাণবিক লেখার আকার কী?


10

জন্য ডকুমেন্টেশনে নির্দেশ , nginx ডকুমেন্টেশন বলেছেনaccess_log

বাফার আকারটি কোনও ডিস্ক ফাইলে পারমাণবিক লেখার আকারের বেশি হবে না।

এই আকারটি আমার সিস্টেমে কী রয়েছে তা আমি কীভাবে নির্ধারণ করতে পারি?


@ এমডিপিসি লিঙ্কযুক্ত নথি থেকে এটি বেশ পরিষ্কার, এটি সেক্টর আকারগুলি সম্পর্কে নয়, যা বিটিডব্লিউ। 80 এর দশকের শেষ থেকে এখন অবধি বেশিরভাগ মিডিয়ায় 512 বাইট ছিল। নতুন ড্রাইভে 4K সেক্টরের আকারের দিকে এগিয়ে চলেছে।
ক্যাস্পার্ড

এই স্পেসিফিকেশন প্রাসঙ্গিক হতে পারে। যদিও এই প্রশ্নের সঠিক কোনও উত্তর দেওয়ার মতো বলে মনে হচ্ছে না: pubs.opengroup.org/onlinepubs/7908799/xsh/write.html
ক্যাস্পারড

উত্তর:


3

কখনও চেয়ে ভাল দেরী :)

দ্রুত উত্তরটি হ'ল "2,147,479,552 বাইট, কার্নেল সংস্করণ যদি 3.14 বা নতুন হয়"

বিস্তারিত উত্তর:

আমি যতদূর বুঝতে পেরেছি, এটি সাইকাল লেখার বিষয়ে:

http://man7.org/linux/man-pages/man2/write.2.html

1) কোনও পসিক্স সিস্টেম (লিনাক্স, বিএসডি, সমস্ত ইউনিক্স) MAX_SSIZE বাইট পর্যন্ত লিখতে সক্ষম হওয়ার গ্যারান্টিযুক্ত

POSIX.1 এর মতে, গণনাটি যদি SSIZE_MAX এর চেয়ে বেশি হয় তবে ফলাফলটি বাস্তবায়ন-সংজ্ঞায়িত হয়; লিনাক্সের উপরের সীমাটির জন্য নোটগুলি দেখুন।

# getconf SSIZE_MAX
32767

2) লিনাক্সটি 1.99 গিগাবাইট পর্যন্ত লিখতে সক্ষম হওয়ার গ্যারান্টিযুক্ত (এবং এটি লিনাক্স কার্নেল সংস্করণ 3.14 এবং আরও নতুন সংস্করণের জন্য পারমাণবিক অপারেশন)

লিনাক্সে, লিখুন () (এবং একই ধরণের সিস্টেম কল) সর্বাধিক 0x7ffff000 (2,147,479,552) বাইট স্থানান্তর করবে, বাস্তবে স্থানান্তরিত বাইটের সংখ্যা ফিরে আসবে। (এটি 32-বিট এবং 64-বিট উভয় সিস্টেমে সত্য)

তবে এটি কেবল লিনাক্স কার্নেল 3.14 থেকে ন্যায্য পারমাণবিক অপারেশন

POSIX.1-2-2008 / SUSv4 বিভাগ XSI 2.9.7 অনুসারে ("নিয়মিত ফাইল অপারেশনের সাথে থ্রেড মিথস্ক্রিয়া"):

নীচের সমস্ত ফাংশন একে অপরের প্রতি পার্সোনিক হতে হবে POSIX.1-2-2008 এ উল্লিখিত প্রভাবগুলিতে যখন তারা নিয়মিত ফাইল বা প্রতীকী লিঙ্কগুলিতে কাজ করে: ...

পরবর্তীকালে তালিকাভুক্ত এপিআইগুলির মধ্যে লিখিত () এবং লিখনভ (2) রয়েছে। এবং থ্রেডগুলি (এবং প্রক্রিয়াগুলি) জুড়ে পারমাণবিক হওয়া উচিত এমন প্রভাবগুলির মধ্যে রয়েছে ফাইল অফসেটের আপডেট। যাইহোক, লিনাক্স সংস্করণ 3.14 এর আগে, এটি ছিল না: যদি দুটি প্রক্রিয়া যা একটি ওপেন ফাইলের বিবরণ ভাগ করে (ওপেন (2) দেখুন) একই সময়ে একটি লেখ () (বা Writv (2)) সঞ্চালন করে, তবে আমি / ও অপারেশনগুলি ফাইলটি অফসেট আপডেট করার ক্ষেত্রে পারমাণবিক ছিল না, ফলস্বরূপ যে দুটি প্রক্রিয়া দ্বারা ডেটা আউটপুট ব্লকগুলি (ভুলভাবে) ওভারল্যাপ হতে পারে। এই সমস্যাটি লিনাক্স 3.14 এ স্থির করা হয়েছিল।


1

এই সুপার ব্যবহারকারীর উত্তরের পারমাণবিক লেখার আকার কী তা সম্পর্কে একটি ভাল সংজ্ঞা ছিল।

এটি হার্ডওয়্যার সেক্টরের আকার হিসাবে কমপক্ষে বৃহত, যা পারমাণবিক পঠন / লেখার আকার।


1
ঠিক আছে, সুতরাং ডিস্ক সেক্টর কত বড় তা আমি কীভাবে নির্ধারণ করব?
বিডেশম

9
Nginx ডকুমেন্টেশন এবং সুপারভাইজার উত্তর স্টোরেজ স্ট্যাকের একই স্তর সম্পর্কে কথা বলছে না। এনজিএনএক্স ডকুমেন্টেশন ফাইল সিস্টেম স্তরে বৃহত্তম পারমাণবিক লেখার বিষয়ে কথা বলে, যা ওএস এবং এফএস নির্ভর। সুপারভাইজার উত্তর ব্লক স্তরের বৃহত্তম পরমাণু রচনার কথা বলছে, যা হার্ডওয়্যার নির্ভর।
ক্যাস্পার্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.