আইওয়েট কি নেটওয়ার্ক কলগুলির জন্য অপেক্ষা করার সময় অন্তর্ভুক্ত করে?


19

proc(5)র manpage "সম্পূর্ণ করার আই সময় ওয়েটিং" হিসাবে iowait বর্ণনা করা হয়েছে। এটি বেশিরভাগ পূর্ববর্তী একটি প্রশ্নে ব্যাখ্যা করা হয়েছিল। আমার প্রশ্নটি হ'ল: আইও ব্লক করার অপেক্ষার মধ্যে এর মধ্যে কি নেটওয়ার্ক আইও, বা কেবল স্থানীয় আইও ব্লক করার জন্য অপেক্ষা করা অন্তর্ভুক্ত?

উত্তর:


20

এর অর্থ "ফাইল আই / ও" এর অপেক্ষার অর্থ, মাউন্ট করা ফাইল সিস্টেমে থাকা কোনও ফাইলে যে কোনও পঠন / লেখার কল, তবে সম্ভবত স্মৃতিতে পৃষ্ঠাগুলি অদলবদল করতে বা ডিমান্ড-লোডের জন্য অপেক্ষা করা সময়ের গণনা যেমন গ্রন্থাগারগুলি নয় স্মৃতিতে এখনও, বা এমএমএপি () এর ডি ফাইলগুলির পৃষ্ঠাগুলি যা র্যাম নয়।

এটি আইপিসি অবজেক্ট যেমন সকেট, পাইপ, টিটিস, নির্বাচন (), পোল (), স্লিপ (), বিরতি () ইত্যাদির জন্য অপেক্ষা করা সময় গণনা করে না

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

বিভ্রান্তিকরভাবে আমি মনে করি এটিতে সম্ভবত নেটওয়ার্ক ফাইল সিস্টেমগুলিতে ফাইল আইও অন্তর্ভুক্ত রয়েছে।


যেমন এনএফএস আইও ফাইল আই /
ওও

লুপব্যাক ইন্টারফেস সম্পর্কে কী? লিনাক্স এই জাতীয় ইন্টারফেসকে কীভাবে আচরণ করে?
জালাল মোস্তফা

3

আইওয়েট সময় হ'ল প্রক্রিয়াটি কার্নেল I / O সময়সূচীতে ব্যয় করে। যতদূর আমি জানি, নিয়মিত সকেট সংযোগ চলার সাথে সাথে নেটওয়ার্ক I / O ইনসোফারের সাথে এর কোনও সম্পর্ক নেই। তবে এটিতে এনএফএসের মতো নেটওয়ার্ক ফাইল সিস্টেমের জন্য অপেক্ষা করা সময় অন্তর্ভুক্ত থাকবে।


2

এটা করে.

ঘটনাচক্রে, আমি যে সার্ভারগুলি পরিচালনা করি তার মধ্যে একটি উচ্চ আইওয়েট অনুভব করছে যা খারাপ এনএফএস মাউন্টের কারণে ঘটে।

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]

2

আইওয়েতে নেটওয়ার্ক কল অন্তর্ভুক্ত রয়েছে। আমি এটি বলছি, কারণ এনএফএস কার্নেলের দৃষ্টিকোণ থেকে অনেকগুলি লিনাক্স স্থানীয় ফাইল সিস্টেমগুলি পরিচালনা করে:

$ 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 ম্যাজিক) এবং আইওয়েট স্থানীয় ফাইল সিস্টেমের মতো।

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