আমি ESXi এর এনএফএস ডেটাস্টোরগুলিতে প্রায় পাঁচ সেকেন্ডের ফাইসেক বিলম্বিতা অনুভব করছি, কিছু ভিএম দ্বারা ট্রিগার করা হয়েছে। আমার সন্দেহ হয় এনসিকিউ / টিসিকিউ ব্যবহার করে ভিএমএসের কারণে এটি হতে পারে কারণ ভার্চুয়াল আইডিই ড্রাইভগুলির সাথে এটি ঘটে না।
এটি fsync-tester (টেড Ts'o দ্বারা) এবং ioping ব্যবহার করে পুনরুত্পাদন করা যেতে পারে । উদাহরণস্বরূপ একটি 8 জিবি ডিস্ক সহ একটি গ্রিমেল লাইভ সিস্টেম ব্যবহার করুন:
Linux 2.6.33-grml64:
root@dynip211 /mnt/sda # ./fsync-tester
fsync time: 5.0391
fsync time: 5.0438
fsync time: 5.0300
fsync time: 0.0231
fsync time: 0.0243
fsync time: 5.0382
fsync time: 5.0400
[... goes on like this ...]
এটি 5 সেকেন্ড, মিলিসেকেন্ড নয়। এটি একই হোস্ট এবং ডেটাস্টোরের চলমান ভিন্ন ভিএম-তে আইও-লেটেন্সিগুলি তৈরি করছে :
root@grml /mnt/sda/ioping-0.5 # ./ioping -i 0.3 -p 20 .
4096 bytes from . (reiserfs /dev/sda): request=1 time=7.2 ms
4096 bytes from . (reiserfs /dev/sda): request=2 time=0.9 ms
4096 bytes from . (reiserfs /dev/sda): request=3 time=0.9 ms
4096 bytes from . (reiserfs /dev/sda): request=4 time=0.9 ms
4096 bytes from . (reiserfs /dev/sda): request=5 time=4809.0 ms
4096 bytes from . (reiserfs /dev/sda): request=6 time=1.0 ms
4096 bytes from . (reiserfs /dev/sda): request=7 time=1.2 ms
4096 bytes from . (reiserfs /dev/sda): request=8 time=1.1 ms
4096 bytes from . (reiserfs /dev/sda): request=9 time=1.3 ms
4096 bytes from . (reiserfs /dev/sda): request=10 time=1.2 ms
4096 bytes from . (reiserfs /dev/sda): request=11 time=1.0 ms
4096 bytes from . (reiserfs /dev/sda): request=12 time=4950.0 ms
আমি যখন প্রথম ভিএম স্থানীয় স্টোরেজে স্থানান্তরিত করি তখন এটি পুরোপুরি স্বাভাবিক দেখায়:
root@dynip211 /mnt/sda # ./fsync-tester
fsync time: 0.0191
fsync time: 0.0201
fsync time: 0.0203
fsync time: 0.0206
fsync time: 0.0192
fsync time: 0.0231
fsync time: 0.0201
[... tried that for one hour: no spike ...]
আমি যে বিষয়গুলি চেষ্টা করেছি তাতে কোন পার্থক্য নেই:
- বেশ কয়েকটি ESXi বিল্ড পরীক্ষিত: 381591, 348481, 260247
- বিভিন্ন হার্ডওয়্যার, বিভিন্ন ইন্টেল এবং এএমডি বাক্সে পরীক্ষিত
- বিভিন্ন এনএফএস সার্ভারের সাথে পরীক্ষিত, সমস্ত একই আচরণ দেখায়:
- ওপেন ইন্ডিয়ানা বি 147 (জেডএফএস সিঙ্ক সর্বদা বা অক্ষম: কোনও পার্থক্য নেই)
- ওপেন ইন্ডিয়ানা বি 148 (জেডএফএস সিঙ্ক সর্বদা বা অক্ষম: কোনও পার্থক্য নেই)
- লিনাক্স ২.6.৩২ (সিঙ্ক বা অ্যাসিঙ্ক: কোনও পার্থক্য নেই)
- এনএফএস সার্ভার একই মেশিনে (ভার্চুয়াল স্টোরেজ অ্যাপ্লায়েন্স হিসাবে) বা অন্য কোনও হোস্টে থাকলে কোনও পার্থক্য হয় না
অতিথি ওএস পরীক্ষা করা হয়েছে, সমস্যা দেখাচ্ছে:
- উইন্ডোজ 64৪ বিট (ক্রিস্টালডিস্কমার্ক ব্যবহার করে, লেটেন্সি স্পাইকগুলি বেশিরভাগ ক্ষেত্রে প্রস্তুতির সময় ঘটে)
- লিনাক্স 2.6.32 (fsync- পরীক্ষক + ioping)
- লিনাক্স 2.6.38 (fsync- পরীক্ষক + ioping)
আমি লিনাক্স 2.6.18 ভিএম-তে এই সমস্যাটি পুনরুত্পাদন করতে পারিনি।
আর একটি কাজ হ'ল ভার্চুয়াল আইডিই ডিস্ক (বনাম এসসিএসআই / এসএএস) ব্যবহার করা, তবে এটি পারফরম্যান্স এবং ভিএম প্রতি ড্রাইভের সংখ্যা সীমাবদ্ধ করে চলেছে।
আপডেট 2011-06-30:
অ্যাপ্লিকেশনটি একাধিক ছোট ব্লকে fsync এর আগে লিখলে বিলম্বিত স্পাইকগুলি প্রায়শই ঘটবে বলে মনে হয়। উদাহরণস্বরূপ fsync- পরীক্ষক এটি করেন (স্ট্রেস আউটপুট):
pwrite(3, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"..., 1048576, 0) = 1048576
fsync(3) = 0
ioping ফাইল প্রস্তুত করার সময় এটি করে:
[lots of pwrites]
pwrite(3, "********************************"..., 4096, 1036288) = 4096
pwrite(3, "********************************"..., 4096, 1040384) = 4096
pwrite(3, "********************************"..., 4096, 1044480) = 4096
fsync(3) = 0
আইওপিংয়ের সেটআপ পর্বটি প্রায় সর্বদা স্তব্ধ হয়ে যায়, যখন ফাইসিঙ্ক-পরীক্ষক কখনও কখনও সূক্ষ্মভাবে কাজ করে। একাধিক ছোট ব্লক লেখার জন্য কি কেউ ফিএনসিএনসি-টেস্টার আপডেট করতে সক্ষম? আমার সি দক্ষতা স্তন্যপান;)
আপডেট 2011-07-02:
এই সমস্যাটি আইএসসিএসআইতে ঘটে না। আমি ওপেনইন্ডিয়ানা কমস্টার আইএসসিএসআই সার্ভার দিয়ে এটি চেষ্টা করেছি। তবে আইএসসিএসআই আপনাকে ভিএমডিকে ফাইলগুলিতে সহজে অ্যাক্সেস দেয় না যাতে আপনি এগুলি স্ন্যাপশট এবং আরএসএনসি-র মাধ্যমে হোস্টের মধ্যে সরিয়ে নিতে পারেন।
আপডেট ২০১১-০-0-০6:
এটি একটি ওয়্যারশার্ক ক্যাপচারের অংশ, একই ভিএসউইচটিতে তৃতীয় ভিএম দ্বারা ক্যাপচার করা হয়েছে। এটি সমস্ত একই হোস্টে ঘটে, কোনও শারীরিক নেটওয়ার্ক জড়িত না।
আমি প্রায় ২০ টা সময় ধরেই ইয়োপিং শুরু করেছি। পাঁচ সেকেন্ড বিলম্ব না হওয়া পর্যন্ত কোনও প্যাকেট প্রেরণ করা হয়নি:
No. Time Source Destination Protocol Info
1082 16.164096 192.168.250.10 192.168.250.20 NFS V3 WRITE Call (Reply In 1085), FH:0x3eb56466 Offset:0 Len:84 FILE_SYNC
1083 16.164112 192.168.250.10 192.168.250.20 NFS V3 WRITE Call (Reply In 1086), FH:0x3eb56f66 Offset:0 Len:84 FILE_SYNC
1084 16.166060 192.168.250.20 192.168.250.10 TCP nfs > iclcnet-locate [ACK] Seq=445 Ack=1057 Win=32806 Len=0 TSV=432016 TSER=769110
1085 16.167678 192.168.250.20 192.168.250.10 NFS V3 WRITE Reply (Call In 1082) Len:84 FILE_SYNC
1086 16.168280 192.168.250.20 192.168.250.10 NFS V3 WRITE Reply (Call In 1083) Len:84 FILE_SYNC
1087 16.168417 192.168.250.10 192.168.250.20 TCP iclcnet-locate > nfs [ACK] Seq=1057 Ack=773 Win=4163 Len=0 TSV=769110 TSER=432016
1088 23.163028 192.168.250.10 192.168.250.20 NFS V3 GETATTR Call (Reply In 1089), FH:0x0bb04963
1089 23.164541 192.168.250.20 192.168.250.10 NFS V3 GETATTR Reply (Call In 1088) Directory mode:0777 uid:0 gid:0
1090 23.274252 192.168.250.10 192.168.250.20 TCP iclcnet-locate > nfs [ACK] Seq=1185 Ack=889 Win=4163 Len=0 TSV=769821 TSER=432716
1091 24.924188 192.168.250.10 192.168.250.20 RPC Continuation
1092 24.924210 192.168.250.10 192.168.250.20 RPC Continuation
1093 24.924216 192.168.250.10 192.168.250.20 RPC Continuation
1094 24.924225 192.168.250.10 192.168.250.20 RPC Continuation
1095 24.924555 192.168.250.20 192.168.250.10 TCP nfs > iclcnet_svinfo [ACK] Seq=6893 Ack=1118613 Win=32625 Len=0 TSV=432892 TSER=769986
1096 24.924626 192.168.250.10 192.168.250.20 RPC Continuation
1097 24.924635 192.168.250.10 192.168.250.20 RPC Continuation
1098 24.924643 192.168.250.10 192.168.250.20 RPC Continuation
1099 24.924649 192.168.250.10 192.168.250.20 RPC Continuation
1100 24.924653 192.168.250.10 192.168.250.20 RPC Continuation
২ য় আপডেট ২০১১-০7-০6:
টিসিপি উইন্ডো আকার থেকে কিছু প্রভাব আছে বলে মনে হচ্ছে। আমি এনএনএফ সার্ভার হিসাবে ফ্রিএনএএস (ফ্রিবিএসডি ভিত্তিক) ব্যবহার করে এই সমস্যাটি পুনরুত্পাদন করতে পারিনি was ওয়্যারশার্ক ক্যাপচারগুলি নিয়মিত বিরতিতে টিসিপি উইন্ডো আপডেটগুলি 29127 বাইটে দেখায়। আমি ওপেন ইন্ডিয়ানা সহ তাদের দেখতে পাইনি, যা ডিফল্টরূপে বড় আকারের উইন্ডো আকার ব্যবহার করে।
আমি যদি ওপেন ইন্ডিয়ানাতে নিম্নলিখিত অপশনগুলি সেট করে এবং এনএফএস সার্ভারটি পুনরায় চালু করতে পারি তবে আমি এই সমস্যাটির আর পুনরুত্পাদন করতে পারি না:
ndd -set /dev/tcp tcp_recv_hiwat 8192 # default is 128000
ndd -set /dev/tcp tcp_max_buf 1048575 # default is 1048576
তবে এটি পারফরম্যান্সকে হত্যা করে: ডিডি_রেস্কু সহ একটি ফাইলে / dev / শূন্য থেকে লিখতে 170MB / s থেকে 80MB / s হয় to
আপডেট ২০১১-০-0-০7:
আমি এই টিসিপিডাম্প ক্যাপচারটি আপলোড করেছি (ওয়্যারশার্ক দিয়ে বিশ্লেষণ করা যেতে পারে)। এই ক্ষেত্রে 192.168.250.2 হ'ল এনএফএস সার্ভার (ওপেনইন্ডিয়ানা বি 148) এবং 192.168.250.10 হ'ল ইএসসি হোস্ট।
এই ক্যাপচারের সময় আমি যে জিনিসগুলি পরীক্ষা করেছি:
"Ioping -w 5 -i 0.2।" শুরু হয়েছে। সময়ে 30, 5 সেকেন্ডে সেটআপ থাকাকালীন সময়ে 40 এ সমাপ্ত।
"Ioping -w 5 -i 0.2।" শুরু হয়েছে। 70 এ শেষ সময়ে 60, 5 সেকেন্ডের হ্যাঙ্গআপ।
নিম্নলিখিত আউটপুট সহ 90 এ সময়ে "fsync- পরীক্ষক" শুরু হয়েছিল, 120 সময় বন্ধ হয়েছিল:
fsync time: 0.0248
fsync time: 5.0197
fsync time: 5.0287
fsync time: 5.0242
fsync time: 5.0225
fsync time: 0.0209
২ য় আপডেট ২০১১-০7-০7:
অন্য একটি এনএফএস সার্ভার ভিএম পরীক্ষিত, এবার নেক্সেন্টাস্টোর 3.0.5 সম্প্রদায় সংস্করণ: একই সমস্যাগুলি দেখায়।
আপডেট ২০১১-০7-৩১:
আমি নতুন ইসএসআই বিল্ড 4.1.0.433742 এও এই সমস্যাটি পুনরুত্পাদন করতে পারি।