উত্তর:
এর অর্থ "ফাইল আই / ও" এর অপেক্ষার অর্থ, মাউন্ট করা ফাইল সিস্টেমে থাকা কোনও ফাইলে যে কোনও পঠন / লেখার কল, তবে সম্ভবত স্মৃতিতে পৃষ্ঠাগুলি অদলবদল করতে বা ডিমান্ড-লোডের জন্য অপেক্ষা করা সময়ের গণনা যেমন গ্রন্থাগারগুলি নয় স্মৃতিতে এখনও, বা এমএমএপি () এর ডি ফাইলগুলির পৃষ্ঠাগুলি যা র্যাম নয়।
এটি আইপিসি অবজেক্ট যেমন সকেট, পাইপ, টিটিস, নির্বাচন (), পোল (), স্লিপ (), বিরতি () ইত্যাদির জন্য অপেক্ষা করা সময় গণনা করে না
মূলত এটি সময় যে কোনও থ্রেড সিঙ্ক্রোনাস ডিস্ক-আইওয়ের জন্য অপেক্ষা করতে ব্যয় করে - এই সময়ে এটি তাত্ত্বিকভাবে চালাতে সক্ষম হয় তবে এটি করতে পারে না কারণ এটির প্রয়োজনীয় কিছু ডেটা এখনও নেই। এই জাতীয় প্রক্রিয়াগুলি সাধারণত "ডি" অবস্থায় দেখা যায় এবং একটি বাক্সের লোড গড়কে অবদান রাখে।
বিভ্রান্তিকরভাবে আমি মনে করি এটিতে সম্ভবত নেটওয়ার্ক ফাইল সিস্টেমগুলিতে ফাইল আইও অন্তর্ভুক্ত রয়েছে।
আইওয়েট সময় হ'ল প্রক্রিয়াটি কার্নেল I / O সময়সূচীতে ব্যয় করে। যতদূর আমি জানি, নিয়মিত সকেট সংযোগ চলার সাথে সাথে নেটওয়ার্ক I / O ইনসোফারের সাথে এর কোনও সম্পর্ক নেই। তবে এটিতে এনএফএসের মতো নেটওয়ার্ক ফাইল সিস্টেমের জন্য অপেক্ষা করা সময় অন্তর্ভুক্ত থাকবে।
এটা করে.
ঘটনাচক্রে, আমি যে সার্ভারগুলি পরিচালনা করি তার মধ্যে একটি উচ্চ আইওয়েট অনুভব করছে যা খারাপ এনএফএস মাউন্টের কারণে ঘটে।
top - 06:19:03 up 14 days, 10:15, 3 users, load average: 9.67, 11.83, 12.31
Tasks: 135 total, 1 running, 134 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 0.0%id, 99.7%wa, 0.0%hi, 0.0%si, 0.0%st
top - 06:22:55 up 14 days, 10:19, 3 users, load average: 10.58, 11.13, 11.89
Tasks: 137 total, 1 running, 136 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 0.0%id, 99.8%wa, 0.0%hi, 0.0%si, 0.0%st
এবং D
রাষ্ট্রের প্রক্রিয়াগুলি দেখুন ।
root 27011 0.0 0.0 0 0 ? S 03:12 0:00 [nfsd4]
root 27012 0.0 0.0 0 0 ? S 03:12 0:00 [nfsd4_callbacks]
root 27013 0.0 0.0 0 0 ? D 03:12 0:01 [nfsd]
root 27014 0.0 0.0 0 0 ? D 03:12 0:01 [nfsd]
root 27015 0.0 0.0 0 0 ? D 03:12 0:01 [nfsd]
root 27016 0.0 0.0 0 0 ? D 03:12 0:01 [nfsd]
আইওয়েতে নেটওয়ার্ক কল অন্তর্ভুক্ত রয়েছে। আমি এটি বলছি, কারণ এনএফএস কার্নেলের দৃষ্টিকোণ থেকে অনেকগুলি লিনাক্স স্থানীয় ফাইল সিস্টেমগুলি পরিচালনা করে:
$ vim linux-2.6.38.2/fs/nfs/file.c
const struct file_operations nfs_file_operations = {
.llseek = nfs_file_llseek,
.read = do_sync_read,
.write = do_sync_write,
.aio_read = nfs_file_read,
.aio_write = nfs_file_write,
.mmap = nfs_file_mmap,
.open = nfs_file_open,
.flush = nfs_file_flush,
.release = nfs_file_release,
.fsync = nfs_file_fsync,
.lock = nfs_lock,
.flock = nfs_flock,
.splice_read = nfs_file_splice_read,
.splice_write = nfs_file_splice_write,
.check_flags = nfs_check_flags,
.setlease = nfs_setlease,
};
প্রক্রিয়াগুলি যখন ফাইল বর্ণনাকারী 5 এ কোনও লিখনকে কল করে, এরকম কিছু ঘটবে:
files->fd_array[5]->f_op->write(argv.......)
সুতরাং, প্রক্রিয়াগুলি জানে না যে কোন ধরণের ফাইল সিস্টেম ব্যবহার করছে (vfs ম্যাজিক) এবং আইওয়েট স্থানীয় ফাইল সিস্টেমের মতো।