একটি প্রধান মেট্রিক, যা বিদ্যমান বা ডিজাইন করা স্টোরেজ সিস্টেমের কর্মক্ষমতা অনুমান করতে দেয় তা হল IOPS (ইনপুট/আউটপুট অপারেশন প্রতি সেকেন্ডে ) সহজ কথায়, IOPS হল একটি স্টোরেজ, ডিস্ক বা একটি ফাইল সিস্টেমের সাথে একটি সময় ইউনিটের সাথে রিড/রাইট অপারেশনের সংখ্যা। এই সংখ্যাটি যত বড় হবে, আপনার স্টোরেজের পারফরম্যান্স তত বেশি হবে (সত্যি বলতে গেলে, IOPS মানকে অন্যান্য স্টোরেজ পারফরম্যান্স বৈশিষ্ট্যগুলির সাথে বিবেচনা করতে হবে, যেমন লেটেন্সি, থ্রুপুট ইত্যাদি)।
এই নিবন্ধে, আমরা Windows-এ স্টোরেজ কর্মক্ষমতা (IOPS, লেটেন্সি, থ্রুপুট) পরিমাপ করার বিভিন্ন উপায় দেখব (আপনি SAN/iSCSI-তে স্থানীয় হার্ড ড্রাইভ, SSD, SMB নেটওয়ার্ক ফোল্ডার, CSV ভলিউম বা LUN-এর জন্য এই ম্যানুয়ালটি ব্যবহার করতে পারেন। স্টোরেজ)।
উইন্ডোজে ডিস্ক পারফরম্যান্স কাউন্টার ব্যবহার করে স্টোরেজ I/O ক্যাপচার করা
আপনি পারফরমেন্স মনিটর থেকে বিল্ট-ইন ডিস্ক পারফরম্যান্স কাউন্টার ব্যবহার করে উইন্ডোজে বর্তমান স্টোরেজ I/O কাজের চাপের আনুমানিক অনুমান করতে পারেন . এই কাউন্টার ডেটা সংগ্রহ করতে:
- পারফমন শুরু করুন;
- একটি নতুন ডেটা কালেক্টর সেট তৈরি করুন এবং ম্যানুয়ালি তৈরি করুন নির্বাচন করুন;
- চেকবক্সটি নির্বাচন করুন ডেটা লগ তৈরি করুন -> পারফরমেন্স কাউন্টার;
- এখন নতুন ডেটা সংগ্রহ সেটের বৈশিষ্ট্যগুলিতে, ফিজিক্যাল ডিস্কের জন্য নিম্নলিখিত কর্মক্ষমতা কাউন্টার যোগ করুন অবজেক্ট (আপনি একটি নির্দিষ্ট ডিস্ক বা সমস্ত উপলব্ধ স্থানীয় ডিস্কের জন্য কাউন্টার নির্বাচন করতে পারেন):
- গড় ডিস্ক সেক./ট্রান্সফার
- গড় ডিস্ক সারি দৈর্ঘ্য
- গড় ডিস্ক বাইট/ট্রান্সফার
- ডিস্ক বাইট/সেকেন্ড
- ডিস্ক স্থানান্তর/সেকেন্ড
- আইও/সেকেন্ড বিভক্ত করুন
- আপনি অন্যান্য তথ্য সংগ্রহ বৈশিষ্ট্য পরিবর্তন করতে পারেন। ডিফল্টরূপে, কাউন্টার মান প্রতি 15 সেকেন্ডে সংগ্রহ করা হয়। রিয়েল টাইম ডিস্কের কর্মক্ষমতা প্রদর্শন করতে, আপনাকে মনিটরিং টুল -> পারফরম্যান্স মনিটর-এ নির্দিষ্ট পারফমন কাউন্টার যোগ করতে হবে অধ্যায়.
- পারফরম্যান্স কাউন্টার ডেটা সংগ্রহ করা শুরু করা বাকি আছে (স্টার্ট নির্বাচন করুন ) এবং বিশ্লেষণের জন্য পর্যাপ্ত তথ্য সংগ্রহের জন্য অপেক্ষা করুন। এর পরে, আপনার ডেটা সংগ্রহকারী সেটটিতে ডান ক্লিক করুন এবং স্টপ নির্বাচন করুন৷;
- সংগৃহীত কর্মক্ষমতা ডেটা দেখতে পারফমন -> রিপোর্ট -> ইউজার ডিফাইনড -> ডেটা_ডিস্ক_আইও —> চেক_থে_লাস্ট_সেট-এ যান . ডিফল্টরূপে, ডিস্ক ডেটা গ্রাফ হিসাবে প্রদর্শিত হয়;
- প্রতিবেদনে স্যুইচ করতে Ctrl + G ব্যবহার করুন মোড.
পারফমন দ্বারা সংগৃহীত স্টোরেজ কর্মক্ষমতা কাউন্টারগুলি কীভাবে বুঝবেন? ডিস্ক/স্টোরেজ পারফরম্যান্সের দ্রুত বিশ্লেষণের জন্য, আপনাকে কমপক্ষে নিম্নলিখিত 5টি কাউন্টারের মান দেখতে হবে।
কাউন্টার ডেটা বিশ্লেষণ করার সময়, আপনার বর্তমান ফিজিক্যাল ডিস্ক (স্টোরেজ) কনফিগারেশন (RAID বা স্ট্রাইপ ব্যবহার করা হয় কিনা, ডিস্কের সংখ্যা এবং প্রকার, ক্যাশের আকার ইত্যাদি) বোঝার পরামর্শ দেওয়া হয়।- ডিস্ক সেকেন্ড/ট্রান্সফার - স্টোরেজ ডিভাইস বা ডিস্ক (ডিস্ক লেটেন্সি দিয়ে একটি লেখা/পড়া অপারেশন সম্পাদন করার জন্য প্রয়োজনীয় সময় ) যদি বিলম্ব 25 ms (0.25) এর বেশি হয়, তাহলে ডিস্ক অ্যারে সময়মতো I/O অপারেশন পরিচালনা করতে পারে না। উচ্চ লোড সার্ভারের জন্য, ডিস্ক লেটেন্সি মান 10 ms (0.1) এর বেশি হওয়া উচিত নয়;
- ডিস্ক স্থানান্তর/সেকেন্ড - (IOPS)। প্রতি সেকেন্ডে রিড/রাইট অপারেশনের সংখ্যা। এটি ডিস্ক অ্যাক্সেসের তীব্রতার প্রধান সূচক (বিভিন্ন ডিস্ক প্রকারের জন্য আনুমানিক IOPS মান নিবন্ধের শেষে তালিকাভুক্ত করা হয়েছে);
- ডিস্ক বাইট/সেকেন্ড – প্রতি সেকেন্ডে মোট ডিস্ক থ্রুপুট (পড়ুন + লিখুন)। সর্বাধিক মানগুলি ডিস্কের প্রকারের উপর নির্ভর করে (150-250 Mb/s – একটি নিয়মিত HDD ডিস্কের জন্য এবং SSD-এর জন্য 500-10000);
- আইও/সেকেন্ড বিভক্ত করুন – একটি ডিস্ক ফ্র্যাগমেন্টেশন নির্দেশক যখন অপারেটিং সিস্টেমকে একটি I/O অপারেশনকে একাধিক ডিস্ক অনুরোধে বিভক্ত করতে হয়। এটি ইঙ্গিতও করতে পারে যে অ্যাপ্লিকেশনটি ডেটার অনেক বড় ব্লকের জন্য অনুরোধ করছে যা একটি অপারেশনে স্থানান্তর করা যাবে না;
- গড় ডিস্ক সারি দৈর্ঘ্য – পঠন/লেখার অনুরোধের গড় সংখ্যা যা সারিবদ্ধ ছিল। একটি একক ডিস্কের জন্য, সারির দৈর্ঘ্য 2 এর বেশি হওয়া উচিত নয়৷ . 4টি ডিস্কের একটি RAID অ্যারের জন্য, ডিস্ক সারির দৈর্ঘ্যের থ্রেশহোল্ড মান হল 8৷
DiskSpd:উইন্ডোজে ডিস্কের কার্যক্ষমতা এবং IOPS পরীক্ষা করা
Microsoft DiskSpd ব্যবহার করার সুপারিশ করে৷ (https://aka.ms/diskspd) একটি ডিস্ক (স্টোরেজ) সিস্টেমে লোড তৈরি করা এবং এর কার্যকারিতা পরিমাপের জন্য ইউটিলিটি। এটি একটি কমান্ড লাইন ইন্টারফেস টুল যা বিভিন্ন থ্রেডে নির্দিষ্ট ড্রাইভ টার্গেটের সাথে I/O অপারেশন করতে পারে। আমি প্রায়শই স্টোরেজ কর্মক্ষমতা পরিমাপ করতে DiskSpd ব্যবহার করি এবং নির্দিষ্ট সার্ভার থেকে সর্বাধিক উপলব্ধ রিড/রাইট স্পিড এবং IOPS পেতে পারি (অবশ্যই আপনি স্টোরেজের কার্যক্ষমতাও পরিমাপ করতে পারেন, এই ক্ষেত্রে ডিস্কএসপিডি স্টোরেজ লোড তৈরি করতে ব্যবহার করা হবে। )
DiskSpd-এর ইনস্টলেশনের প্রয়োজন নেই, শুধুমাত্র একটি স্থানীয় ডিস্কে সংরক্ষণাগারটি ডাউনলোড করুন এবং বের করুন। x64 বিট সিস্টেমের জন্য, amd64fre থেকে diskspd.exe সংস্করণ ব্যবহার করুন ডিরেক্টরি।
আমি ডিস্কের কর্মক্ষমতা পরীক্ষা করতে নিম্নলিখিত কমান্ডটি ব্যবহার করি:
diskspd.exe –c50G -d300 -r -w40 -t8 -o32 -b64K -Sh -L E:\diskpsdtmp.dat > DiskSpeedResults.txt
-c50G
- ফাইলের আকার 50 জিবি (এটি একটি বড় ফাইলের আকার ব্যবহার করা ভাল যাতে এটি স্টোরেজ কন্ট্রোলারের ক্যাশে ফিট না হয়);-d300
– সেকেন্ডে পরীক্ষার সময়কাল;-r
– এলোমেলোভাবে পড়া/লেখার ক্রিয়াকলাপ (যদি আপনার অনুক্রমিক অ্যাক্সেস পরীক্ষা করতে হয়, ব্যবহার করুন –গুলি);-t8
- থ্রেডের সংখ্যা;-w40
– রিড টু রিড অপারেশনের অনুপাত 40%/ 60%;-o32
— সারির দৈর্ঘ্য;-b64K
— ব্লক সাইজ;-Sh
— ক্যাশে ব্যবহার করবেন না;-L
— বিলম্ব পরিমাপ করুন;E:\diskpsdtmp.dat
– পরীক্ষা ফাইল পাথ।
স্ট্রেস পরীক্ষা শেষ হওয়ার পরে, আউটপুট টেবিল থেকে গড় স্টোরেজ কর্মক্ষমতা মান পাওয়া যেতে পারে।
আমার পরীক্ষায়, নিম্নলিখিত কর্মক্ষমতা ডেটা (মোট IO সারণী পরীক্ষা করুন) প্রাপ্ত হয়েছিল:
- MiB/s — 241 (প্রায় 252 Mb/s, খারাপ নয়);
- IOPS — 3866 (পুরোপুরি ভাল!);
- গড় বিলম্ব — 66.206 ms (বেশ একটি বড় বিলম্ব!)।
আপনি পঠিত (বিভাগ পড়ুন IO) বা লিখুন (বিভাগ লিখুন IO) অপারেশনের জন্য পৃথক মান পেতে পারেন৷
diskspd ব্যবহার করে বেশ কয়েকটি ডিস্ক বা স্টোরেজ LUN পরীক্ষা করার পরে, আপনি তাদের তুলনা করতে পারেন বা আপনার কাজের জন্য পছন্দসই কর্মক্ষমতা সহ একটি অ্যারে নির্বাচন করতে পারেন৷
পাওয়ারশেল ব্যবহার করে স্টোরেজ IOPS, থ্রুপুট এবং লেটেন্সি কিভাবে পরিমাপ করবেন?
আমি একটি পাওয়ারশেল স্ক্রিপ্ট পেয়েছি (মাইকেল নিস্ট্রম, মাইক্রোসফ্ট এমভিপি দ্বারা), যা মূলত SQLIO.exe-এর একটি অ্যাড-অন ইউটিলিটি (ফাইল স্টোরেজ কর্মক্ষমতা পরীক্ষার একটি সেট)।
দ্রষ্টব্য . ডিসেম্বর, 2015 এ, মাইক্রোসফ্ট এই টুলটির জন্য সমর্থনের সমাপ্তি ঘোষণা করেছে এবং আরও সার্বজনীন টুল Diskspd দিয়ে SQLIO-এর প্রতিস্থাপন করেছে। , এবং এর ওয়েবসাইট থেকে SQLIO ডিস্ট্রিবিউশন ফাইল সরিয়ে দিয়েছে। তাই আপনাকে নিজেই sqlio.exe অনুসন্ধান করতে হবে, অথবা আমাদের ওয়েবসাইট থেকে এটি ডাউনলোড করতে হবে (এটি PowerShell স্ক্রিপ্ট সহ সংরক্ষণাগারে অবস্থিত)।সুতরাং, 2টি ফাইল সম্বলিত সংরক্ষণাগারটি ডাউনলোড করুন:SQLIO.exe এবং DiskPerformance.ps1 (disk_perf_iops.ZIP — 74 KB) এবং যেকোনো ফোল্ডারে এক্সট্র্যাক্ট করুন।
ডিস্ক কর্মক্ষমতা এবং IOPS অনুমান করার জন্য একটি পাওয়ারশেল স্ক্রিপ্ট চালানোর একটি উদাহরণ:
.\DiskPerformance.ps1 -TestFileName test.dat –TestFileSizeInGB 1 -TestFilepath C:\temp -TestMode Get-LargeIO -FastMode True -RemoveTestFile True -OutputFormat Out-GridView
আসুন স্ক্রিপ্ট আর্গুমেন্ট বিবেচনা করা যাক:
–TestFileName test.dat
– FSUTIL টুল দ্বারা তৈরি ফাইলের নাম;–TestFileSizeInGB 1
- পরীক্ষার ফাইলের আকার। সম্ভাব্য মানগুলি হল 1.5, 10, 50, 100, 500, 1,000 GB৷ ফাইলের আকার স্টোরেজ সিস্টেম ক্যাশের আকারের চেয়ে বড় হতে হবে। অন্যথায়, ডিস্কের পরিবর্তে ক্যাশে ডেটার জন্য IOPS পরিমাপ করা হবে;-TestFilepath C:\Temp
- এখানে আপনি ডিস্কের কার্যক্ষমতা পরিমাপ করার জন্য ডিস্ক এবং ডিস্কের ফোল্ডারটি নির্দিষ্ট করুন, যেখানে একটি পরীক্ষা ফাইল তৈরি করা হবে। আপনি নেটওয়ার্ক শেয়ার্ড ফোল্ডারে (SMB);
একটি UNC পাথও নির্দিষ্ট করতে পারেন -TestMode Get-LargeIO
- ইনপুট-আউটপুট পরিমাপের দুটি বিকল্প রয়েছে। Get-SmallIO IOPS পরিমাপ করার অনুমতি দেয়, এবং Get-LargeIO ডেটা স্থানান্তর হার পরিমাপ করে। SmallIO এবং LargeIO আর্গুমেন্টের মধ্যে পার্থক্য হল 8 KB এবং 512 KB ব্লক সাইজের হার পরিমাপ করার সময়, এবং অ্যাক্সেসের ধরন, র্যান্ডম বা অনুক্রমিক, অনুরূপভাবে;-FastMode True
– ফাস্টমোডে, প্রতিটি পরীক্ষা 10 সেকেন্ড চলে, অন্যথায় এটি 60 সেকেন্ড সময় নেয়;-RemoveTestFile True
– পরীক্ষা শেষ হওয়ার পর পরীক্ষার ফাইলটি সরিয়ে ফেলুন;-OutputFormat Out-GridView
– পরীক্ষার ফলাফল PowerShell কনসোলে (ফরম্যাট-টেবিল প্রদর্শিত হতে পারে ) অথবা একটি পৃথক গ্রাফিক চার্ট উইন্ডোতে (আউট-গ্রিডভিউ )।
আমাদের ক্ষেত্রে (SAN এর সাথে সংযুক্ত HP MSA 2040 এ VMFS ডেটাস্টোরে একটি vmdk ভার্চুয়াল ডিস্ক ব্যবহার করা হয়) ডিস্ক অ্যারেটি প্রায় 15,000 এর গড় IOPS মান দেখিয়েছে এবং ডেটা ট্রান্সমিশন রেট (থ্রুপুট) প্রায় 5 Gbit/s .
নিম্নলিখিত টেবিলে, বিভিন্ন ধরনের ডিস্কের জন্য আনুমানিক IOPS মান দেখানো হয়েছে:
প্রকার | IOPS |
SSD(SLC) | 6000 |
SSD(MLC) | 1000 |
15K RPM | 175-200 |
10K RPM | 125-150 |
7.2K RPM | 50-75 |
10K RPM সহ 6টি ড্রাইভের মধ্যে Raid5 | 1000 |
আমি কিছু জনপ্রিয় Microsoft পরিষেবার জন্য IOPS-এ ডিস্ক পারফরম্যান্সের জন্য কিছু সুপারিশ পেয়েছি:
- Microsoft Exchange 2010 5,000 ব্যবহারকারীর সাথে, তাদের প্রত্যেকে 75টি গ্রহণ করে এবং প্রতিদিন 30টি ইমেল পাঠায়, কমপক্ষে 3,750 IOPS প্রয়োজন হবে;
- Microsoft SQL 2008 সার্ভার প্রতি সেকেন্ডে 3,500 SQL লেনদেনের সাথে (TPS) 28,000 IOPS প্রয়োজন;
- একটি সাধারণ উইন্ডোজ অ্যাপ্লিকেশন সার্ভার 10-100 ব্যবহারকারীর জন্য 10-40 IOPS প্রয়োজন।