Kordhinta cufnaanta weelka dusha sare iyadoo la adeegsanayo tignoolajiyada PFCACHE

Kordhinta cufnaanta weelka dusha sare iyadoo la adeegsanayo tignoolajiyada PFCACHE

Mid ka mid ah yoolalka bixiyaha martigelinta ayaa ah in la kordhiyo isticmaalka qalabka jira si loo bixiyo adeeg tayo sare leh oo loogu talagalay isticmaaleyaasha dhamaadka. Ilaha server-yada dhammaadka ah had iyo jeer waa xaddidan yihiin, laakiin tirada adeegyada macaamiisha la martigeliyay, iyo kiiskeena waxaan ka hadlaynaa VPS, aad ayey u kala duwanaan karaan. Wax ku saabsan sida loo fuulo geedka oo aad u cuntid burger ka hooseeya gooynta.

Isku-duubnida VPS ee qanjidhada si aysan macaamiishu u dareemin gabi ahaanba waxay si weyn u caawisaa kordhinta waxqabadka dhaqaale ee bixiye kasta oo martigelinaya. Dabcan, noodhku waa inaanu ka dillaacin seeraha haddii ay ka buuxaan weelal, kor u kaca culeyska ayaa isla markiiba dareemaya dhammaan macaamiisha.

Immisa VPS ah ayaa lagu martigelin karaa hal noode waxay kuxirantahay arrimo badan, sida kuwa muuqda sida:

1. Astaamaha qalabka noodhka laftiisa
2. Cabbirka VPS
3. Dabeecada culeyska saaran VPS
4. Tignoolajiyada softiweerka ah ee gacan ka geysta hagaajinta cufnaanta

Xaaladdan oo kale, waxaan wadaagi doonaa waayo-aragnimadayada isticmaalka tignoolajiyada Pfcache ee Virtuozzo.
Waxaan isticmaalnaa laanta 6-aad, laakiin wax kasta oo la sheego ayaa sidoo kale run u ah 7-aad.

Pfcache - Farsamaynta Virtuozzo oo ka caawisa kala soocida IOPS iyo RAM ee weelasha, u qoondaynta faylal isku mid ah oo weelasha ku jira meel gaar ah oo la wadaago.

Runtii waxay ka kooban tahay:
1. Koodhka Kernel
2. Shaydaanka isticmaalaha
3. Isticmaalaha-booska utility

Dhinaca node-ka, waxaan u qoondeyneynaa qayb dhan oo faylasha la abuuri doono kuwaas oo si toos ah u isticmaali doona dhammaan VPS ee noodhka. Qalabka loo yaqaan block ploop ayaa lagu rakibay qaybtan. Kadib, marka weelku bilaabmo, waxay helaysaa tixraac qaybtan:

[root@pcs13 ~]# cat /proc/mounts
...
/dev/ploop62124p1 /vz/pfcache ext4 rw,relatime,barrier=1,data=ordered,balloon_ino=12 0 0
...
/dev/ploop22927p1 /vz/root/418 ext4 rw,relatime,barrier=1,data=ordered,balloon_ino=12,pfcache_csum,pfcache=/vz/pfcache 0 0
/dev/ploop29642p1 /vz/root/264 ext4 rw,relatime,barrier=1,data=ordered,balloon_ino=12,pfcache_csum,pfcache=/vz/pfcache 0 0
...

Halkan waxaa ah tirokoobyo ku saabsan tirada faylasha mid ka mid ah noodyadayada:

[root@pcs13 ~]# find /vz/pfcache -type f | wc -l
45851
[root@pcs13 ~]# du -sck -h /vz/pfcache
2.4G    /vz/pfcache
2.4G    total

Mabda'a pfcache waa sida soo socota:
β€’ Isticmaalaha-space daemon Pfcached waxay ku qortaa sha-1 hash ee faylka sifada xattr ee faylkan. Dhammaan faylasha lama farsameeyo, laakiin kaliya /usr, /bin, /usr/sbin, /sbin, /lib, /lib64 directory

Waxay u badan tahay in faylasha ku jira hagahan la β€œla wadaagi doono” oo ay isticmaali doonaan dhawr weel;

β€’ Pfcached waxay si xilliyo ah u ururisaa xisaabaadka akhrinta faylalka kernel-ka, waxay falanqaysaa, oo ku daraa faylasha kaydinta haddii si joogto ah loo isticmaalo;

β€’ Hagayaashani way kala duwanaan karaan waxaana lagu habeeyey faylalka habaynta.

β€’ Marka aad akhrinayso fayl, waxa la hubiyaa in uu ku jiro xashiish cayiman oo ku jira sifada fidsan xattr. Haddii ay ku jirto, faylka "guud" waa la furayaa halkii laga furi lahaa faylka weelka. Beddelkaani wuxuu ku dhacaa iyadoo aan la dareemin koodka weelka oo wuxuu ku qarsoon yahay kernel-ka;

β€’ Markaad wax u qorayso fayl, xashiishku waa buray. Markaa, marka xigta ee aad furto, faylka weelka laftiisa ayaa la furi doonaa, ee ma aha kaydkiisa.

Markaan ku hayno feylasha la wadaago ee /vz/pfcache ee khasnadda bogga, waxaan ku gaarnaa kaydinta kaydkan laftiisa, iyo sidoo kale kaydinta IOPS. Halkii aan ka akhrin lahayn toban fayl oo disk ah, waxaan akhrinay mid, kaas oo isla markiiba tagaya bogga cache.

struct inode {
...
 struct file             *i_peer_file;
...
};
struct address_space {
...
 struct list_head        i_peer_list;
...
}

Liistada VMA ee faylku waxa ay ahaanaysaa hal (waxa aanu ka soo saarnay xusuusta) waxaana laga akhriyaa saxanka in ka yar (badbaadinta iops). Sanduuqayada guud waxay ku yaalaan SSD - faa'iido dheeri ah oo xagga xawaaraha ah.

Tusaale ahaan kaydinta faylka /bin/bash:

[root@pcs13 ~]# ls -li /vz/root/2388/bin/bash
524650 -rwxr-xr-x 1 root root 1021112 Oct  7  2018 /vz/root/2388/bin/bash
[root@pcs13 ~]# pfcache dump /vz/root/2388 | grep 524650
8e3aa19fdc42e87659746f6dc8ea3af74ab30362 i:524650      g:1357611108  f:CP
[root@pcs13 ~]# sha1sum /vz/root/2388/bin/bash
8e3aa19fdc42e87659746f6dc8ea3af74ab30362  /vz/root/2388/bin/bash
[root@pcs13 /]# getfattr -ntrusted.pfcache /vz/root/2388/bin/bash
# file: vz/root/2388/bin/bash
trusted.pfcache="8e3aa19fdc42e87659746f6dc8ea3af74ab30362"
[root@pcs13 ~]# sha1sum /vz/pfcache/8e/3aa19fdc42e87659746f6dc8ea3af74ab30362
8e3aa19fdc42e87659746f6dc8ea3af74ab30362  /vz/pfcache/8e/3aa19fdc42e87659746f6dc8ea3af74ab30362

Waxaan xisaabineynaa waxtarka isticmaalka qoraal diyaarsan.

Qoraalkani wuxuu dhex maraa dhammaan weelasha ku yaal noodhka, iyadoo la xisaabinayo faylalka kaydsan ee weel kasta.

[root@pcs16 ~]# /pcs/distr/pfcache-examine.pl
...
Pfcache cache uses 831 MB of memory
Total use of pfcached files in containers is 39837 MB of memory
Pfcache effectiveness: 39006 MB

Sidaa darteed, xusuusta waxaan ku badbaadineynaa ilaa 40 gigabytes oo faylal ah oo ku jira weelasha; waxaa laga soo rari doonaa kaydka.

Si habkani u shaqeeyo xitaa si ka sii wanaagsan, waxaa lagama maarmaan ah in la dhigo VPS-ka ugu "isku midka ah" ee noodhka. Tusaale ahaan, kuwa aan isticmaaluhu lahayn marin xidid iyo kaas oo deegaanka laga soo qaaday sawirka la geeyey lagu habeeyey.

Waxaad ku hagaajin kartaa pfcache adigoo isticmaalaya faylka qaabeynta
/etc/vz/pfcache.conf

MINSIZE, MAXSIZE - cabbirka ugu yar/ugu badnaan ee kaydinta
WAQTIGA-WAQTIGA-WAQTIGA U dhexeeya isku dayga kaydinta

Waxaad arki kartaa liiska buuxa ee cabbirada link.

Source: www.habr.com

Add a comment