SSD VPS என்றால் என்ன? Flash storage விளக்கம்
SSD VPS என்பது சுழலும் hard disk அல்ல, flash storage கொண்ட virtual server. IOPS, குறைந்த latency கிடைப்பதையும், வாங்கும் முன் கேட்க வேண்டிய 3 கேள்விகளையும் அறிக.
SSD VPS என்றால் என்ன?
SSD VPS என்பது சுழலும் hard disk-க்கு பதிலாக flash memory மூலம் ஆதரிக்கப்படும் disk கொண்ட virtual private server ஆகும். SSD என்பது solid state drive என்பதன் சுருக்கம். இது உள்ளே நகரும் பாகங்கள் இல்லாமல் NAND flash chips மூலம் உருவாக்கப்பட்ட storage ஆகும். VPS என்பது virtual private server என்பதன் சுருக்கம். இது physical host machine-ன் தனிமைப்படுத்தப்பட்ட ஒரு பகுதி. இது தனக்கென operating system-ஐ இயக்கி, முழு server போல உங்களுக்கு வழங்கப்படுகிறது. இந்த இரண்டையும் இணைத்தால், இந்தப் பெயர் ஒரு விஷயத்தை உறுதியளிக்கிறது. உங்கள் server ஒரு data block-ஐ படிக்கும்போது, முதலில் எந்த mechanical பகுதியும் நகர வேண்டியதில்லை.
இதுவே முழு வரையறை. கீழே உள்ள அனைத்தும் இந்தப் பெயர் குறிப்பிடாமல் விடும் அம்சங்களைப் பற்றியது. ஏனெனில் pricing page-ல் உள்ள "SSD hosting" என்ற சொற்கள், அதன் பின்னால் உள்ள storage array பற்றி மிகக் குறைவாகவே தெரிவிக்கின்றன.
VPS என்பது சாதாரண virtual machine-இலிருந்து எவ்வாறு வேறுபடுகிறது என்பதை நீங்கள் இன்னும் புரிந்துகொண்டு இருந்தால், VPS, VM மற்றும் VPC ஆகியவற்றுக்கிடையிலான வேறுபாடு பற்றி விளக்கும் பக்கத்தை முதலில் படிப்பது சிறந்தது.
சேமிப்பக அளவுக்குப் பதிலாக சேமிப்பக வேகத்தை hosts ஏன் குறிப்பிடுகின்றன
ஒரு plan பக்கத்தில் CPU cores, memory, disk size மற்றும் bandwidth ஆகியவை பட்டியலிடப்படுகின்றன. அதன் பிறகு, disk பற்றிய அளவாக இல்லாத ஒரு சொல்லும் சேர்க்கப்படுகிறது. இதற்குக் காரணம், சேமிப்பகத்தைப் பற்றிய முக்கியமான எண்ணாக capacity இருப்பது பல ஆண்டுகளுக்கு முன்பே நிறுத்தப்பட்டுவிட்டது. Server-ன் செயல்பாட்டு வேகத்தைத் தீர்மானிக்கும் இரண்டு எண்கள் IOPS (input/output operations per second) மற்றும் latency (ஒரு operation முடிந்து திரும்ப எடுக்கும் நேரம்) ஆகும்.
இதற்குக் காரணம் இயந்திர அமைப்பில் உள்ள வேறுபாடு. hard disk சுழலும் platters-ல் data-வை வைத்திருக்கும். Moving arm-ல் உள்ள head அதைப் படிக்கும். Platter-ல் வேறு இடத்தில் உள்ள block-ஐ அடைய, arm seek செய்ய வேண்டும். அதன் பிறகு சரியான sector head-க்கு கீழே வரும் வரை disk சுழல வேண்டும். 7200 revolutions per minute வேகத்தில், அரைச் சுழற்சிக்கு சராசரியாக சுமார் 4 ms ஆகும். Seek நேரம் இதனுடன் மேலும் பல ms-ஐ சேர்க்கிறது. Flash-ல் arm அல்லது platter இல்லை. எனவே read என்பது electrical lookup ஆக இருந்து, tens of microseconds-ல் திரும்பும்.
The data behind this chart
[
{
"device": "7200 rpm hard disk",
"random_read_iops": "125",
"read_latency_ms": 8
},
{
"device": "SATA SSD",
"random_read_iops": "90,000",
"read_latency_ms": 0.15
},
{
"device": "NVMe SSD",
"random_read_iops": "600,000",
"read_latency_ms": 0.08
}
]ஒரு 7200 rpm hard disk, ஒரு வினாடிக்கு சுமார் 125 random 4k reads செய்யும் திறனுக்காக மதிப்பிடப்படுகிறது. அவற்றில் ஒரு read திரும்பி வர சுமார் 8 ms ஆகும். ஒரு NVMe drive, அதே reads-ஐ சுமார் 600,000 அளவில் செய்யும் திறனுக்காக மதிப்பிடப்படுகிறது. ஒவ்வொரு read-க்கும் சுமார் 0.08 ms ஆகும். இவ்விரண்டிற்கும் இடைப்பட்ட SATA SSD, சுமார் 90,000 அளவில் மதிப்பிடப்படுகிறது. இவற்றை percentage improvement ஆக அல்லாமல், orders of magnitude ஆகப் புரிந்துகொள்ளுங்கள்.
இந்தத் தரவைப் பற்றி இரண்டு எச்சரிக்கைகள் உள்ளன. இவை ஒவ்வொரு வகையிலும் உள்ள முழு drives-க்காக வெளியிடப்பட்ட specifications ஆகும். எனவே இவை manufacturer sheet-ல் உள்ள figures; VPS-ல் அளந்த முடிவுகள் அல்ல. மேலும், நீங்கள் ஒருபோதும் முழு drive-ஐப் பெறமாட்டீர்கள். உங்கள் volume என்பது ஒரு device-ன் share அல்லது ஒரு array-ன் share ஆகும். அதே hardware-ல் மற்ற customers-ன் volumes அருகில் இயங்கும்.
இந்த இரண்டு columns வெவ்வேறு கேள்விகளுக்குப் பதிலளிக்கின்றன. எனவே அவற்றை ஒன்றாகப் படிக்க வேண்டும். Latency என்பது ஒரு operation-க்காக நீங்கள் காத்திருக்க வேண்டிய நேரம். IOPS என்பது drive ஒரே நேரத்தில் செயல்படுத்தக்கூடிய operations-ன் எண்ணிக்கை. Parallelism மூலம் Flash அதிக IOPS figures-ஐ அடைகிறது. ஏனெனில் பல flash chips ஒரே நேரத்தில் பல requests-க்கு பதிலளிக்கின்றன. Deep queue அவற்றை தொடர்ந்து busy-ஆக வைத்திருக்கிறது. ஒரு read-ஐ அனுப்பி, அதற்காகக் காத்திருந்து, பிறகு அடுத்த read-ஐ அனுப்பும் single threaded program, அந்த chart-ன் உச்சத்தை ஒருபோதும் அடையாது. அது latency column-ல் உள்ள மதிப்பையே காணும்.
SSD, NVMe, SATA மற்றும் PCIe: நான்கு வெவ்வேறு அடுக்குகளைக் குறிக்கும் நான்கு சொற்கள்
ஒவ்வொரு சொல்லும் system-இன் வெவ்வேறு பகுதியைக் குறிக்கும் என்பதால், buyers இந்தச் சொற்களை குழப்புகின்றனர்.
- SSD என்பது storage medium. Data magnetic platters-ல் அல்லாமல் NAND flash chips-ல் சேமிக்கப்படுகிறது என்பதே இதன் பொருள்.
- SATA என்பது mechanical disks பயன்பாட்டில் இருந்த காலத்தில் வடிவமைக்கப்பட்ட interface. இதன் அதிகபட்ச வேகம் 6 Gbit/s. உண்மையான throughput சுமார் 550 MB/s ஆகும். இதன் command queue-ல் ஒரே நேரத்தில் நிலுவையில் இருக்கக்கூடிய commands எண்ணிக்கை 32.
- NVMe (non-volatile memory express) என்பது flash-க்காகவே உருவாக்கப்பட்ட protocol. ஒவ்வொரு queue-லும் ஆயிரக்கணக்கான commands இருக்கக்கூடிய பல queues-ஐ இது ஆதரிக்கிறது. எனவே, ஒரே குறுகிய queue-ஐ பகிராமல் பல CPU cores ஒரே நேரத்தில் drive-உடன் தொடர்புகொள்ள முடியும்.
- PCIe (peripheral component interconnect express) என்பது NVMe இயங்கும் bus. Graphics card இணைக்கப்படும் அதே வகையான lanes இதிலும் பயன்படுத்தப்படுகின்றன.
ஆகவே, SATA SSD மற்றும் NVMe SSD இரண்டும் data-வை flash-ல் சேமிக்கின்றன. அவை பயன்படுத்தும் interface-ல் வேறுபடுகின்றன. SATA SSD எந்த hard disk-ஐவிடவும் அதிக வேகமானது. ஆனால் அதன் 32 command queue, அது வெளிப்படுத்தக்கூடிய parallel work அளவைக் கட்டுப்படுத்துகிறது. Flash சிறப்பாகக் கையாளுவது இதே parallel work ஆகும். எதற்காக பணம் செலுத்துவது பயனுள்ளது என்பது உங்கள் workload-ஐப் பொறுத்தது. NVMe மற்றும் SATA SSD பற்றிய தேர்வு இதை முறையாக விளக்குகிறது.
உள்ளக flash அல்லது network இணைக்கப்பட்ட storage?
ஒரே சொல்லின் கீழ் இரண்டு முற்றிலும் வேறுபட்ட அமைப்புகள் விற்பனை செய்யப்படுகின்றன.
Local storage என்பது flash drives உங்கள் VPS இயங்கும் அதே physical host-இன் உள்ளே இருப்பதைக் குறிக்கும். ஒரு request, ஒரே machine-இன் உள்ளே PCIe வழியாகச் சென்று உடனடியாகத் திரும்புகிறது. இதனால் latency, பத்து கணக்கான microseconds அளவில் இருக்கும்.
Network attached storage என்பது உங்கள் virtual disk தனியான storage cluster-இல் இருப்பதைக் குறிக்கும். அது பெரும்பாலும் Ceph அல்லது SAN (storage area network) ஆக இருக்கும். ஒவ்வொரு read மற்றும் write செயல்பாடும் அந்த storage-ஐ அடைய network வழியாகச் செல்லும். Providers இதை பொதுவாக "cloud block storage" அல்லது "elastic volumes" என்று அழைப்பார்கள். Flash உண்மையானதே. Network வழியாகச் செல்லும் நேரமும் உண்மையானதே. அது ஒவ்வொரு operation-க்கும் சேர்வதால், latency பத்து கணக்கான microseconds-க்கு பதிலாக, நூற்றுக்கணக்கான microseconds-இன் அதிக அளவாக அல்லது குறைந்த அளவிலான milliseconds ஆக இருக்கும்.
இரண்டிலும் எதுவும் தவறான தேர்வு அல்ல. ஒரு host செயலிழந்தாலும் network storage தொடர்ந்து இயங்கும். ஏனெனில் data அந்த host-இல் ஒருபோதும் இருந்ததில்லை. Provider உங்கள் server-ஐ வேறு hardware-இல் தொடங்க முடியும்; disk அதனுடன் தொடரும். Local NVMe வேகமானது, ஆனால் அது ஒரு physical machine-க்கு இணைக்கப்பட்டிருக்கும். எனவே அந்த hardware செயலிழந்தால், backup-இலிருந்து restore செய்ய வேண்டும். ஒரு plan எந்த வகையான storage-ஐ பயன்படுத்துகிறது என்று கேளுங்கள். கிட்டத்தட்ட யாரும் கேட்பதில்லை.
உண்மையான server-இல் வேறுபாடு எவ்வாறு தெரியும்
Server பணிகளில் பெரும்பாலும் நீண்ட தொடர்ச்சியான transfer-கள் அல்ல, சிறிய சீரற்ற read மற்றும் write செயல்பாடுகளே இடம்பெறும். அதனால் marketing உரையில் காணப்படும் MB/s மதிப்பு அந்தப் பக்கத்தில் உள்ள பயனற்ற எண் ஆகும்.
- Database commits. Durability-ஐ உறுதி செய்யும் database, transaction commit ஆகும்போது
fsync-ஐ அழைக்கிறது. பின்னர் data உண்மையில் சேமிக்கப்பட்டுள்ளதா என்பதை drive உறுதிப்படுத்தும் வரை காத்திருக்கிறது. Hard disk-இல் இந்தக் காத்திருப்பு milliseconds அளவில் இருக்கும். இதனால் சிறிய database, ஒரு second-க்கு குறைந்த நூற்றுக்கணக்கான commits என்ற அளவில் மட்டுப்படும். Flash-இல் இதே காத்திருப்பு ஒரு millisecond-இன் சிறு பகுதி மட்டுமே. நீங்கள் PostgreSQL, MySQL அல்லது production database ஆக SQLite பயன்படுத்தினாலும், வேறுபாடு இங்குதான் அதிகமாக இருக்கும். - Package installs.
apt installஆயிரக்கணக்கான சிறிய files-ஐ unpack செய்து, செயல்படும் போதே அவற்றை disk-க்கு sync செய்கிறது. இந்தப் பணியில் ஏறத்தாழ எதுவும் தொடர்ச்சியானது அல்ல. எனவே இது IOPS-ஆல் கட்டுப்படுத்தப்படுகிறது. - Container image pulls.
docker pullnetwork வழியாக compressed layers-ஐ fetch செய்து, பின்னர் அவற்றை ஆயிரக்கணக்கான சிறிய files ஆக extract செய்கிறது. Download, network-ஆல் கட்டுப்படுத்தப்படுகிறது. Extraction, disk-ஆல் கட்டுப்படுத்தப்படுகிறது. Slow volume-இல் நீங்கள் காத்திருக்க வேண்டிய பகுதி extraction ஆகும். - Boot and reboot. Startup முதலில் kernel மற்றும் initramfs-ஐ read செய்கிறது. பின்னர் volume முழுவதும் சிதறியுள்ள நூற்றுக்கணக்கான சிறிய unit files மற்றும் shared libraries-ஐ read செய்கிறது.
இவற்றில் எதுவும் பெரிய தொடர்ச்சியான read அல்ல. ஒரு volume 500 MB/s வேகத்தில் stream செய்தாலும், 3,000 IOPS மட்டுமே வழங்கினால், docker compose pull நேரத்தில் அது இன்னும் மெதுவாகவே தெரியும். ஏனெனில் காத்திருப்பு ஒவ்வொரு megabyte-க்கும் அல்ல, ஒவ்வொரு file-க்கும் கணக்கிடப்படுகிறது.
“SSD cloud hosting” என்ற சொல் விலைப் பக்கத்தில் ஏன் கிட்டத்தட்ட எந்தத் தகவலையும் வழங்காது
இந்தச் சொல் storage medium-ஐ மட்டும் குறிப்பிடுகிறது. Drive பேசும் interface எது என்பதையும், அந்த drive உங்கள் server இருக்கும் அதே machine-ல் உள்ளதா என்பதையும் இது குறிப்பிடாது. உங்கள் plan அடைய அனுமதிக்கப்படும் வரம்பைப் பற்றியும் இது எதுவும் கூறாது.
அந்த வரம்பே மிகவும் முக்கியமானது. ஆனால் providers அதைப் பற்றிய தகவலை மிகக் குறைவாகவே வெளியிடுகின்றனர். ஒரு host பல customers-க்கு சேவை வழங்குவதால், providers ஒவ்வொரு volume-க்கும் IOPS மற்றும் throughput வரம்புகளை நிர்ணயிக்கின்றனர். வரம்பற்ற neighbour மற்றவர்களின் வளங்களை முழுமையாகப் பயன்படுத்தி, அவர்களின் செயல்திறனைக் குறைக்கக்கூடும். நூறாயிரக்கணக்கான IOPS வழங்கக்கூடிய hardware-ல் சில ஆயிரம் IOPS வரம்பு இருப்பது வழக்கமானதும் நேர்மையானதுமாகும். ஆனால் plan description-ல் அது தெரியாது. இரண்டு plans-லும் “SSD” என்று குறிப்பிடப்பட்டிருக்கலாம். ஆனால் ஒன்றில் per-volume cap இல்லாத local NVMe இருக்கலாம்; மற்றொன்று 3,000 IOPS-க்கு வரையறுக்கப்பட்ட shared cluster volume ஆக இருக்கலாம்.
வரம்புகள் இரண்டு வகைப்படும். Sustained cap என்பது எப்போதும் மாறாத நிலையான உச்சவரம்பாகும். Burst cap என்பது குறைந்த baseline-ஐ வழங்கி, சில காலத்திற்கு அதைக் கடக்க credits மூலம் அனுமதிக்கிறது. Volume idle நிலையில் இருக்கும் போது அந்த credits மீண்டும் நிரப்பப்படும். ஐந்து நிமிட test-ல் burst cap சிறப்பாகத் தோன்றலாம். ஆனால் database import அல்லது பெரிய restore நடைபெறும் நடுவில் அது baseline நிலைக்கு குறையலாம். Provider ஒரு பெரிய எண்ணிக்கையை குறிப்பிடினால், அந்த வேகத்தை எவ்வளவு நேரம் தொடர்ந்து பயன்படுத்த அனுமதிக்கப்படுகிறீர்கள் என்று கேளுங்கள்.
உங்கள் VPS உண்மையில் வழங்கிய வளங்களை எவ்வாறு சரிபார்ப்பது
guest-க்குள் இருந்து hypervisor தெரிவிப்பவற்றை மட்டுமே நீங்கள் காண முடியும்.
lsblk -d -o NAME,ROTA,MODEL,SIZE
cat /sys/block/vda/queue/rotationalஉங்கள் disk-க்காக அச்சிடப்பட்ட device name lsblk-ஐப் பயன்படுத்தி vda-ஐ மாற்றவும். ROTA மற்றும் rotational file, kernel-க்கு device non-rotational என்று தெரிவிக்கப்பட்டிருக்கும்போது 0-ஐயும், எதிர்மாறாக தெரிவிக்கப்பட்டிருக்கும்போது 1-ஐயும் படிக்கும். hypervisor விளம்பரப்படுத்தும் தகவலின் அடிப்படையில் virtual disk அந்த flag-ஐ அமைக்கிறது. எனவே, அது கீழுள்ள physical hardware-ஐ அல்லாமல் virtual device-ஐ விவரிக்கிறது. MODEL என்பது vda போன்ற virtio disk-க்கு பொதுவாக காலியாக இருக்கும். Emulated SATA controller-ல் QEMU HARDDISK போன்ற பொதுவான string இருக்கும். guest-கள் host-ன் array-ஐப் பார்க்கும் வகையில் வடிவமைக்கப்படவில்லை; அவை அதைப் பார்ப்பதுமில்லை.
எனவே, அந்த flag-ஐ ஒரு குறியீடாக மட்டுமே கருதி, மீதியை அளவிடவும். உங்கள் application உண்மையில் பயன்படுத்தும் queue depth-ல், volume-ல் உள்ள file-க்கு எதிராக fio மூலம் random 4k test-ஐ இயக்கவும். burst credit முழுமையாகப் பயன்படுத்தப்படும் அளவுக்கு test-ஐ நீண்ட நேரம் இயக்கவும். VPS-ஐ முறையாக benchmark செய்வது என்பதில் fio commands மற்றும் அதிகமான செயல்திறன் இருப்பதாகத் தோன்றும் எண்ணிக்கைகளை உருவாக்கும் பொதுவான தவறுகள் இடம்பெற்றுள்ளன.
வாங்குவதற்கு முன் provider-யிடம் கேட்க வேண்டிய 3 கேள்விகள்
- Storage hypervisor-க்கு local-ஆக உள்ளதா, அல்லது network attached-ஆக உள்ளதா? இந்த பதில் உங்கள் latency-க்கான குறைந்தபட்ச அளவை நிர்ணயிக்கிறது. Physical host தோல்வியுற்றால் உங்கள் data-க்கு என்ன நடக்கும் என்பதையும் இது தீர்மானிக்கிறது. இதற்கு தெளிவாக பதிலளிக்கும் provider, இந்த அம்சத்தைச் சரியாக பரிசீலித்துள்ளார்.
- எனது volume-க்கான IOPS limit என்ன? ஒரு எண்ணைக் கேளுங்கள். "Unlimited" மற்றும் "enterprise grade" ஆகியவை எண்கள் அல்ல. உண்மையில் cap இல்லையெனில், அதே host-ல் உள்ள neighbour ஒருவர் தமது backup window-இல் முழு array-யையும் பயன்படுத்துவதைத் தடுப்பது என்ன என்று கேளுங்கள்.
- இந்த limit sustained-ஆக உள்ளதா, அல்லது burst-ஆக உள்ளதா? Burst ஆக இருந்தால், baseline மற்றும் burst நீடிக்கும் கால அளவைக் கேளுங்கள். உங்கள் nightly job செயல்பட வேண்டிய அளவு baseline ஆகும். எனவே திட்டமிடும்போது பயன்படுத்த வேண்டிய அளவும் அதுவே.
Flash தேய்ந்து செயலிழக்குமா, அது உங்கள் பிரச்சினையா?
Flash cells குறிப்பிட்ட எண்ணிக்கையிலான write cycles-ஐ மட்டுமே ஏற்கும். எனவே drives, endurance rating-ஐ TBW (terabytes written) அல்லது DWPD (drive writes per day) என்ற அளவுகளில் வெளியிடுகின்றன. Drive, அதன் cells முழுவதும் writes-ஐ சமமாகப் பகிர்கிறது. இதற்கு wear levelling என்று பெயர். செயலிழக்கும் cells-ஐ மாற்றுவதற்காக அது spare blocks-ஐ reserve-ஆக வைத்திருக்கும். VPS-இல் wear என்பது provider-இன் பிரச்சினை. அவர்கள் தங்களுடைய drives-இல் உள்ள SMART counters-ஐ monitor செய்து, rating முடிவதற்கு முன் hardware-ஐ மாற்றுகின்றனர். உங்கள் பிரச்சினை flash-ஐ விடப் பழையது. Drive ஒரு backup அல்ல. உங்கள் volume-க்கு கீழே உள்ள redundancy-யும் backup அல்ல. ஏனெனில் அது data-வை நகலெடுப்பது போலவே deletion-ஐயும் துல்லியமாக நகலெடுக்கும்.
நீங்கள் உண்மையில் செய்யும் சமரசம், ஒரு gigabyte-க்கான விலை பற்றியது. Spinning disks-ஐ விட Flash-க்கு ஒரு gigabyte-க்கான விலை அதிகம். எனவே அதே விலையில் உள்ள hard disk plan-ஐ விட SSD plan பொதுவாகக் குறைந்த capacity-ஐ வழங்கும். Media அல்லது archives-க்கு அதிக storage space தேவைப்பட்டால், வேகமான volume-ஐ சிறியதாக வைத்துக்கொண்டு, bulk data-வை குறைந்த விலையுள்ள வேறு இடத்தில் வையுங்கள். இது backups-ஐ server-க்கு வெளியே வைத்திருப்பதற்கும் சரியான அமைப்பாகும். Storage, மொத்த bill-இன் மற்ற பகுதிகளுடன் எவ்வாறு இணைகிறது என்பதை அறிய, VPS-க்கு உண்மையில் எவ்வளவு செலவாகிறது என்பது ஒவ்வொரு cost item-ஐயும் பிரித்துக் காட்டுகிறது.
FAQ
SSD VPS மற்றும் NVMe VPS ஒன்றா?
ஒவ்வொரு NVMe VPS-மும் SSD VPS ஆகும், ஏனெனில் NVMe drives flash அடிப்படையிலானவை. இதன் மறுபக்கம் பொருந்தாது. "SSD" என விளம்பரப்படுத்தப்படும் plan, SATA SSD ஆக இருக்கலாம். அதில் mechanical disks-க்காக வடிவமைக்கப்பட்ட interface-க்கு பின்னால் flash இருக்கும்; 32 command queue மற்றும் 550 MB/s-க்கு அருகிலான ceiling இருக்கும். இவை இரண்டும் hard disk-ஐ விட மிகவும் வேகமானவை. இந்த இரண்டிற்கிடையிலான வேறுபாடு உங்கள் workload-க்கு முக்கியமானதாக இருந்தால், plan name-ஐ மட்டும் பார்த்து முடிவு செய்யாமல், அந்த plan எந்த storage-ஐ பயன்படுத்துகிறது என்று provider-ஐக் கேளுங்கள்.
SSD VPS என் website-ஐ வேகமாக்குமா?
இது disk work-ஐ மட்டும் வேகமாக்கும். ஒவ்வொரு request-க்கும் பல database queries இயங்கும் page வேகமாகும், ஏனெனில் அந்த queries மற்றும் அவற்றின் commits சிறிய random I/O செயல்பாடுகள். Memory அல்லது cache-இலிருந்து வழங்கப்படும் page வெளியே செல்லும் போது disk-ஐத் தொடுவதில்லை. எனவே அதில் மிகக் குறைந்த மாற்றமே ஏற்படும். Storage-க்கு செலவிடுவதற்கு முன், request-இன் எந்தப் பகுதி மெதுவாக உள்ளது என்பதை அளவிடுங்கள்.
என் VPS உண்மையில் SSD storage-ஐ பயன்படுத்துகிறதா என்பதை எப்படிச் சரிபார்ப்பது?
Guest-க்குள் இருந்து physical hardware-ஐ உறுதிப்படுத்த முடியாது. lsblk -d -o NAME,ROTA virtual device விளம்பரப்படுத்தும் தகவலைக் காட்டும். அந்த மதிப்பை hypervisor தீர்மானிப்பதால், அங்கு 0 காணப்படுவது ஆதாரம் அல்ல; அது ஒரு குறிப்பு மட்டுமே. நடைமுறைச் சரிபார்ப்பு ஒரு measurement ஆகும்: random 4k read workload உடன் fio-ஐ பல நிமிடங்கள் இயக்கி, அது காட்டும் latency-ஐப் பாருங்கள். Single digit millisecond random reads, spinning disks அல்லது congestion உள்ள network volume-ஐக் குறிக்கின்றன. Tens of microseconds, local flash-ஐக் குறிக்கின்றன.
Network attached SSD storage, local NVMe-ஐ விட மோசமானதா?
ஒவ்வொரு operation-க்கும் இது மெதுவாக இருக்கும், மேலும் failure ஏற்படும் விதமும் வேறுபடும். ஒவ்வொரு read மற்றும் write செயல்பாட்டிலும் network round trip சேர்க்கப்படுவதால், இரண்டும் flash ஆக இருந்தாலும் latency அதிகமாக இருக்கும். அதற்கு மாற்றாக, உங்கள் data ஒரே physical host-இல் மட்டும் இருப்பதில்லை. எனவே host failure ஏற்பட்டாலும் volume அதனுடன் பாதிக்கப்படாது. Provider-க்கு snapshots மற்றும் live migration ஆகியவை எளிதாகும். Latency sensitive database-க்கு local flash-ஐத் தேர்ந்தெடுக்கவும். Microseconds-ஐ விட volume தொடர்ந்து கிடைப்பது முக்கியமானதாக இருந்தால் network storage-ஐத் தேர்ந்தெடுக்கவும்.