{"id":36999,"date":"2019-10-31T22:15:13","date_gmt":"2019-10-31T19:15:13","guid":{"rendered":"https:\/\/prohoster.info\/blog\/haki-pri-rabote-s-bolshim-chislom-melkih-fajlov\/"},"modified":"2019-10-31T22:15:13","modified_gmt":"2019-10-31T19:15:13","slug":"haki-pri-rabote-s-bolshim-chislom-melkih-fajlov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/haki-pri-rabote-s-bolshim-chislom-melkih-fajlov","title":{"rendered":"Nipid paljude v\u00e4ikeste failidega t\u00f6\u00f6tamiseks","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Artikli idee tulenes spontaanselt arutelust kommentaarides artikli all <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/462849\/\">\u00abM\u00f5ned asjad inode'ist\u00bb<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Nipid paljude v\u00e4ikeste failidega t\u00f6\u00f6tamiseks\" src=\"\/wp-content\/uploads\/2019\/08\/e488f5985cfb0b3274f57f6baeeedf01.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAsi on selles, et meie teenuste sisemine erip\u00e4ra on tohutu hulga v\u00e4ikeste failide salvestamine. Praegusel hetkel on meil sadu terabait selliseid andmeid. Oleme silmitsi seisnud m\u00f5ne ilmselge ja mitte nii ilmselge probleemiga ning oleme neist edukalt \u00fcle saanud.<\/p>\n<p>Seet\u00f5ttu jagan meie kogemusi, ehk on kellelegi kasuks.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Esimene probleem: \u201eSeadmel pole ruumi\u201d<\/h2>\n<p>\nNagu mainitud eelnevas artiklis, on probleem selles, et failis\u00fcsteemis on vabad plokid, kuid inode'id on otsas.<\/p>\n<p>Kasutatud ja vabad inode'id saab kontrollida k\u00e4sklusega <code>df -ih<\/code>:<\/p>\n<p><img decoding=\"async\" alt=\"Nipid paljude v\u00e4ikeste failidega t\u00f6\u00f6tamiseks\" src=\"\/wp-content\/uploads\/2019\/08\/ceb86a22562aa08c8ffbbde2c2618545.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMa ei hakka artiklit \u00fcmber jutustama, l\u00fchidalt \u00f6eldes, kettal on nii plokke, mis on m\u00f5eldud otse andmete jaoks, kui ka plokke meta-informatsiooni jaoks, need on inode'id (indeksi s\u00f5lm). Nende arv m\u00e4\u00e4ratakse failis\u00fcsteemi initsialiseerimisel (r\u00e4\u00e4gime ext2 ja selle j\u00e4reltulijatest) ning hiljem ei muutu. Andmeplokkide ja inode'ide tasakaalu arvutatakse keskmiste andmete p\u00f5hjal, meie puhul, kus on palju v\u00e4ikeseid faile, peaks tasakaal olema suunatud inode'ide arvu suurendamisele \u2014 neid peaks olema rohkem.<\/p>\n<p>Linuxis on juba ette n\u00e4htud erinevate tasakaalude variandid, ja k\u00f5ik need eelnevalt arvutatud konfiguratsioonid asuvad failis <code>\/etc\/mke2fs.conf<\/code>.<br \/>\nSeet\u00f5ttu saab failis\u00fcsteemi esmakordsel initsialiseerimisel k\u00e4sklusega mke2fs m\u00e4\u00e4rata soovitud profiili.<\/p>\n<p>Siin on m\u00f5ned n\u00e4ited failist:<\/p>\n<pre><code class=\"json\">    small = {\n        blocksize = 1024\n        inode_size = 128\n        inode_ratio = 4096\n    }\n\n    big = {\n        inode_ratio = 32768\n    }\n\n    largefile = {\n        inode_ratio = 1048576\n        blocksize = -1\n    }\n<\/code><\/pre>\n<p>\n\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0446\u0438\u0435\u0439 &#171;-T&#187; \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 mke2fs. \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f.<\/p>\n<p>Rohkem \u00fcksikasju on kirjeldatud manuaalides <code>mke2fs.conf<\/code> ja <code>mke2fs<\/code>.<\/p>\n<p>\u00dcksikasjad, mis ei olnud eelnevas artiklis k\u00e4sitletud \u2014 andmeploki suurust saab m\u00e4\u00e4rata. Ilmselgelt on suurte failide jaoks m\u00f5istlikud suuremad plokid, v\u00e4ikeste jaoks aga v\u00e4iksemad. <\/p>\n<p>Siiski tuleks arvesse v\u00f5tta sellist huvitavat omadust nagu protsessori arhitektuur.<br \/>\nM\u00f5tlesin kunagi, et suurte piltide puhul on mul vaja suuremat ploki suurust. See toimus kodustes tingimustes, WD nime all tuntud kodu serveris, mis oli ehitatud ARM arhitektuuri peale. M\u00f5tlesin siis, et seadistan ploki suuruseks kas 8k v\u00f5i 16k, standardse 4k asemel, p\u00e4rast eelnevat s\u00e4\u00e4stude m\u00f5\u00f5tmist. K\u00f5ik oli suurep\u00e4rane, kuni server \u00fchel hetkel \u00fcles \u00fctles, samas k\u00f5vaketas t\u00f6\u00f6tas. Panin k\u00f5vaketta tavalisse arvutisse tavalise Intel-i protsessoriga ja sain \u00fcllatuse: toetamata ploki suurus. Andmed olid olemas, k\u00f5ik oli korras, aga lugeda ei saanud. i386 protsessorid ja sarnased ei oska t\u00f6\u00f6tada plokkide suurustega, mis ei vasta m\u00e4lu lehe suurusele, mis on t\u00e4pselt 4k. L\u00f5ppkokkuv\u00f5ttes kasutasime user space'i t\u00f6\u00f6riistu, k\u00f5ik k\u00e4is aeglaselt ja kurvalt, kuid me p\u00e4\u00e4stsime andmed. Huvi korral \u2014 otsige t\u00f6\u00f6riista nime j\u00e4rgi <code>fuseext2<\/code>. Moraal: kas m\u00f5elda k\u00f5ik juhtumid ette v\u00f5i mitte teeselda superkangelast ja kasutada standardseid seadistusi koduperenaiste jaoks.<\/p>\n<p>UPD. \u00dche kasutaja m\u00e4rkuse kohaselt <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/berez\/\" class=\"user_link\">berez<\/a><\/noindex> t\u00e4psustan, et i386 ploki suurus ei tohi \u00fcletada 4k, kuid ei pea olema t\u00e4pselt 4k, st lubatud on 1k ja 2k.<\/p>\n<p>Nii et, kuidas meie probleemid lahendasime.<\/p>\n<p>Esiteks, me puutusime probleemiga kokku, kui mitme terabaidi suurune k\u00f5vaketas oli andmetega t\u00e4idetud, ja me ei saanud failis\u00fcsteemi konfiguratsiooni muuta.<\/p>\n<p>Teiseks, lahendus oli h\u00e4dasti vajalik.<\/p>\n<p>Kokkuv\u00f5ttes j\u00f5udsime j\u00e4reldusele, et peame tasakaalu muutma, v\u00e4hendades failide arvu.<br \/>\nFailide arvu v\u00e4hendamiseks otsustasime faile kokku panna \u00fchte \u00fchisesse arhiivi. Arvestades meie spetsiifikat, panime \u00fchte arhiivi k\u00f5ik failid teatud ajavahemiku jooksul ja teostasime arhiveerimise cron-\u00fclesandega igal \u00f6\u00f6l.<\/p>\n<p>Valisite zip-arhiivi. Eelmises artiklis pakuti v\u00e4lja tar, kuid sellel on \u00fcks probleem: see ei sisalda sisukorda ja failid on seal j\u00e4rjestikku (\u00e4rge unustage, et \u00abtar\u00bb on l\u00fchend \u00abTape Archive\u00bb ehk ribal\u00f5ike p\u00e4rand), seega kui soovite lugeda faili arhiivi l\u00f5pus, tuleb lugeda kogu arhiiv, kuna seal pole failide asukohtade kohta niheteid. Seet\u00f5ttu on see aeglane protsess. Zipis on asjad palju paremad: tal on see sisukord ja failide nihked arhiivi sees, ning juurdep\u00e4\u00e4su aeg igale failile ei s\u00f5ltu selle asukohast. Meie juhul v\u00f5is seada tihendamise valiku \u00ab0\u00bb, kuna k\u00f5ik failid olid juba eelnevalt gzip'i sees tihendatud.<\/p>\n<p>Kliendid v\u00f5tavad faile nginx'i kaudu ja vanas API-s n\u00e4idatakse lihtsalt faili nime, n\u00e4iteks nii:<\/p>\n<pre><code class=\"plaintext\">http:\/\/www.server.com\/hydra\/20170416\/0453\/3bd24ae7-1df4-4d76-9d28-5b7fcb7fd8e5\n<\/code><\/pre>\n<p>\nKasutades faile otse lahti pakkida, leidsime ja lisasime nginx-unzip-module'i (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/youzee\/nginx-unzip-module\">https:\/\/github.com\/youzee\/nginx-unzip-module<\/a><\/noindex>) ja seadistatud kaks upstream'i.<\/p>\n<p>Tulemuseks sai selline konfiguratsioon:<\/p>\n<p><img decoding=\"async\" alt=\"Nipid paljude v\u00e4ikeste failidega t\u00f6\u00f6tamiseks\" src=\"\/wp-content\/uploads\/2019\/08\/56f5210669fecfe194ac5907d563aa1d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKaks hosti seadistustes n\u00e4gid v\u00e4lja nii:<\/p>\n<pre><code class=\"json\">server {\n  listen *:8081;\n\n  location \/ {\n    root      \/home\/filestorage;\n  }\n}<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"json\">server {\n  listen *:8082;\n\n  location ~ ^\/hydra\/(d+)\/(d+)\/(.*)$ {\n    root      \/home\/filestorage;\n    file_in_unzip_archivefile \"\/home\/filestorage\/hydra\/$1\/$2.zip\";\n    file_in_unzip_extract \"$2\/$3\";\n    file_in_unzip;\n  }\n}\n<\/code><\/pre>\n<p>\nJa upstream'i konfiguratsioon \u00fclemisel nginx'il:<\/p>\n<pre><code class=\"json\">upstream storage {\n  server server.com:8081;\n  server server.com:8082;\n}\n<\/code><\/pre>\n<p>\nKuidas see t\u00f6\u00f6tab:<\/p>\n<ul>\n<li>Kliendi siseneb front nginx'i<\/li>\n<li>Front nginx \u00fcritab anda faili esimesest upstream'ist, st otse failis\u00fcsteemist<\/li>\n<li>Kui faili ei ole \u2014 \u00fcritab anda teiselt upstream'ilt, mis p\u00fc\u00fcab leida faili arhiivi seest<\/li>\n<\/ul>\n<p><\/p>\n<h2>Teine probleem: j\u00e4lle \u00abNo space left on device\u00bb<\/h2>\n<p>\nSee on teine probleem, millega me silmitsi seisame, kui kataloogis on palju faile.<br \/>\nP\u00fc\u00fcdleme faili luua, s\u00fcsteem kurdab, et ruumi pole. Muudame faili nime ja proovime uuesti.<\/p>\n<p>Saame hakkama.<\/p>\n<p>Paistab v\u00e4lja umbes nii:<\/p>\n<p><img decoding=\"async\" alt=\"Nipid paljude v\u00e4ikeste failidega t\u00f6\u00f6tamiseks\" src=\"\/wp-content\/uploads\/2019\/08\/f365358b59bf81d450a236dfb58e4874.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nInode'ide kontroll ei andnud midagi \u2014 neid on palju vabu. <br \/>\nRuuumi kontroll \u2014 sama asi.<br \/>\nM\u00f5tlesime, et v\u00f5ib-olla on kataloogis liiga palju faile ja sellel on piirang, kuid taas ei ole: Kataloogis lubatud maksimaalne failide arv: ~1,3 \u00d7 10^20<\/p>\n<p>Ja faili luua on v\u00f5imalik, kui muuta nime.<br \/>\nJ\u00e4reldus \u2014 probleem on faili nimel.<\/p>\n<p>Edasised otsingud n\u00e4itavad, et probleem seisneb katalooge indekseerimise algoritmi hash-algoritmis, kus suurte failide arvuga tekivad kollisioonid k\u00f5igi sellele j\u00e4rgneva tagaj\u00e4rgedega. T\u00e4iendavad \u00fcksikasjad leiate siit: <noindex><a rel=\"nofollow\" href=\"https:\/\/ext4.wiki.kernel.org\/index.php\/Ext4_Disk_Layout#Hash_Tree_Directories\">https:\/\/ext4.wiki.kernel.org\/index.php\/Ext4_Disk_Layout#Hash_Tree_Directories<\/a><\/noindex><\/p>\n<p>Seda valikut on v\u00f5imalik v\u00e4lja l\u00fclitada, kuid\u2026 faili leidmine nime j\u00e4rgi v\u00f5ib muutuda ettearvamatult pikaks, kui k\u00e4iakse l\u00e4bi k\u00f5ik failid. <\/p>\n<pre><code class=\"bash\"> tune2fs -O \"^dir_index\" \/dev\/sdb3\n<\/code><\/pre>\n<p>\n\u00dcldiselt v\u00f5ib see toimida ajutise lahendusena.<\/p>\n<p>Moraal: palju faile kaustas on tavaliselt halb. Nii ei tohiks teha.<\/p>\n<p>Tavaliselt sellistes olukordades luuakse sisemisi kaustu, kas faili nime esimeste t\u00e4htede j\u00e4rgi v\u00f5i m\u00f5ne muu parameetri, n\u00e4iteks kuup\u00e4evade j\u00e4rgi, see p\u00e4\u00e4stab enamasti.<br \/>\nAga \u00fcldine v\u00e4ikeste failide arv on ikkagi halb, isegi kui need on jaotatud kaustadesse \u2014 siis vaata esimest probleemi.<\/p>\n<h2>Kolmas probleem: kuidas vaadata failide nimekirja, kui neid on palju<\/h2>\n<p>\nMeie olukorras, kui meil on palju faile, oleme paratamatult kokku puutunud probleemiga, kuidas vaadata kausta sisu.<\/p>\n<p>Standardsed lahendus \u2014 k\u00e4sk <code>ls<\/code>.<br \/>\nOkei, vaatame, mis juhtub 4772098 failiga:<\/p>\n<pre><code class=\"bash\">\n$ time ls \/home\/app\/express.repository\/offercache\/ &gt;\/dev\/null\n\nreal\t0m30.203s\nuser\t0m28.327s\nsys\t0m1.876s\n<\/code><\/pre>\n<p>\n30 sekundit\u2026 see on liiga palju. Peamine aeg kulub failide t\u00f6\u00f6tlemiseks kasutaja ruumis, mitte tuuma t\u00f6\u00f6le.<\/p>\n<p>Aga lahendus on olemas:<\/p>\n<pre><code class=\"bash\">\n$ time find \/home\/app\/express.repository\/offercache\/ &gt;\/dev\/null\n\nreal\t0m3.714s\nuser\t0m1.998s\nsys\t0m1.717s\n<\/code><\/pre>\n<p>\n3 sekundit. 10 korda kiiremini.<br \/>\nJee!<\/p>\n<p><b>UPD.<\/b><\/p>\n<p>Kasutajalt veelgi kiirem lahendus <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/berez\/\" class=\"user_link\">berez<\/a><\/noindex> \u2014 sortimise keelamine k\u00e4skluses <code>ls<\/code><\/p>\n<pre><code class=\"bash\">\ntime ls -U \/home\/app\/express.repository\/offercache\/ &gt;\/dev\/null\nreal\t0m2.985s\nuser\t0m1.377s\nsys\t0m1.608s\n<\/code><\/pre>\n<h2>Neljas probleem: suur LA failidega t\u00f6\u00f6tamisel<\/h2>\n<p>\nAeg-ajalt juhtub, et tuleb kopeerida palju faile \u00fchest masinast teise. Sellega seoses suureneb sageli LA, kuna k\u00f5ik s\u00f5ltub ketaste j\u00f5udlusest.<\/p>\n<p>M\u00f5istlik on kasutada SSD-d. See on t\u00f5eliselt \u00e4ge. K\u00fcsimus on ainult mitme terabaidi SSD hindades.<\/p>\n<p>Aga kui kettad on tavalised, tuleb faile kopeerida, ja see on veel tootmiss\u00fcsteem, kus \u00fclekoormus viib klientide rahulolematuse juurde? On v\u00e4hemalt kaks kasulikku t\u00f6\u00f6riista: <code>nice<\/code> ja <code>ionice<\/code>.<\/p>\n<p><code>nice<\/code> \u2014 v\u00e4hendab protsessi prioriteeti, seega jaotab planeerija rohkem aeglasi kvante teistele, prioriteetsematele protsessidele.<br \/>\nMeie praktikas on aidanud m\u00e4\u00e4rata nice'i maksimaalseks (19 \u2014 minimaalne prioriteet, -20 \u2014 maksimaalne).<\/p>\n<p><code>ionice<\/code> \u2014 vastavalt reguleerib sisendi\/v\u00e4ljundi prioriteeti (I\/O planeerimine).<\/p>\n<p>Kui teil on RAID ja see vajab \u00e4kki s\u00fcnkroonimist (p\u00e4rast eba\u00f5nnestunud taask\u00e4ivitamist v\u00f5i RAID-massiivi taastamist p\u00e4rast ketta vahetust), siis teatud olukordades on m\u00f5ttekas v\u00e4hendada s\u00fcnkroonimise kiirust, et teised protsessid saaksid enam-v\u00e4hem korralikult t\u00f6\u00f6tada. Selle jaoks aitab j\u00e4rgmine k\u00e4sk:<\/p>\n<pre><code class=\"bash\">\necho 1000 &gt; \/proc\/sys\/dev\/raid\/speed_limit_max\n<\/code><\/pre>\n<p><\/p>\n<h2>Probleem viies: Kuidas s\u00fcnkroonida faile reaalajas<\/h2>\n<p>\nMeil on k\u00f5ik need tohutud failihulgad, mida tuleb varundada teisele serverile\u2026 Failid kirjutatakse pidevalt, seega, et minimeerida kaotusi, tuleb neid maksimaalse kiirusel kopeerida.<\/p>\n<p>Standardlahendus: Rsync SSH kaudu.<\/p>\n<p>See on hea variant, kui sellega ei pea tegelema kord paari sekundi tagant. Ja faile on palju. Isegi kui neid ei kopeerita, tuleb kuidagi ikkagi m\u00f5ista, mis on muutunud, ja v\u00f5rrelda mitme miljoni faili \u2014 see v\u00f5tab aega ja koormab kettaid.<\/p>\n<p>Kuna meil on vaja kohe teada, mida kopeerida, ilma igal korral v\u00f5rgu k\u00e4ivitamata.<\/p>\n<p>P\u00e4\u00e4stmine \u2014 <code>lsyncd<\/code>. <code>Lsyncd<\/code> \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/axkibe.github.io\/lsyncd\/\">Live Syncing (Mirror) Daemon<\/a><\/noindex>. See t\u00f6\u00f6tab samuti rsynci kaudu, kuid j\u00e4lgib lisaks failis\u00fcsteemi muudatusi, kasutades inotify ja fsevents, ning k\u00e4ivitab kopeerimise ainult nende failide jaoks, mis on tekkinud v\u00f5i muutunud.<\/p>\n<h2>Probleem kuues: kuidas aru saada, kes koormab kettaid<\/h2>\n<p>\nSeda teavad ilmselt k\u00f5ik, kuid t\u00e4ieliku pildi saamiseks: diskis\u00fcsteemi j\u00e4lgimiseks on k\u00e4sk <code>iotop<\/code> \u2014 sarnane <code>top<\/code>, kuid n\u00e4itab protsesse, mis kasutavad kettaid k\u00f5ige aktiivsemalt.<\/p>\n<p><img decoding=\"async\" alt=\"Nipid paljude v\u00e4ikeste failidega t\u00f6\u00f6tamiseks\" src=\"\/wp-content\/uploads\/2019\/08\/56612c618469ef340a31ae446d65ed4e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMuide, vana hea top aitab samuti aru saada, kas kettas on probleeme v\u00f5i mitte. Selleks on kaks k\u00f5ige sobivamat parameetrit: <b>Load Average<\/b> ja <b>IOwait<\/b>.<\/p>\n<p><img decoding=\"async\" alt=\"Nipid paljude v\u00e4ikeste failidega t\u00f6\u00f6tamiseks\" src=\"\/wp-content\/uploads\/2019\/08\/01a0565947de65d13b0045f7180caf5d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEsimene n\u00e4itab, mitu protsessi ootavad teenindamist; tavaliselt, kui see on rohkem kui 2, on juba midagi valesti. Aktiivse varundamise ajal lubame kuni 6-8, p\u00e4rast seda loetakse olukord erakorraliseks.<\/p>\n<p>Teine \u2014 kui palju protsessor on kettaoperatsioonidega h\u00f5ivatud. IOwait &gt;10% \u2014 p\u00f5hjustab muret, kuigi meil on serverites, millel on spetsiifiline koormusprofiil, stabiilselt 40-50%, ja see on t\u00f5eliselt normaalne.<\/p>\n<p>Selle l\u00f5petan, kuigi kindlasti on palju aspekte, millega me pole kokku puutunud; ootan hea meelega kommentaare ja huvitavaid t\u00f5elisi juhtumeid.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/srg\/blog\/462967\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0418\u0434\u0435\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0441\u043f\u043e\u043d\u0442\u0430\u043d\u043d\u043e \u0438\u0437 \u0434\u0438\u0441\u043a\u0443\u0441\u0441\u0438\u0438 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043a \u0441\u0442\u0430\u0442\u044c\u0435 \u00ab\u041a\u043e\u0435-\u0447\u0442\u043e \u043e\u0431 inode\u00bb. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0448\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0433\u0440\u043e\u043c\u0430\u0434\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043c\u0435\u043b\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0443 \u043d\u0430\u0441 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0441\u043e\u0442\u0435\u043d \u0442\u0435\u0440\u0430\u0431\u0430\u0439\u0442 \u0442\u0430\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0418 \u043c\u044b \u043d\u0430\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0435 \u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0433\u0440\u0430\u0431\u0435\u043b\u044c\u043a\u0438 \u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u043e \u043d\u0438\u043c \u043f\u0440\u043e\u0448\u043b\u0438\u0441\u044c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0435\u043b\u044e\u0441\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27728,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36999","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0418\u0434\u0435\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0441\u043f\u043e\u043d\u0442\u0430\u043d\u043d\u043e \u0438\u0437 \u0434\u0438\u0441\u043a\u0443\u0441\u0441\u0438\u0438 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043a \u0441\u0442\u0430\u0442\u044c\u0435 \u00ab\u041a\u043e\u0435-\u0447\u0442\u043e \u043e\u0431 inode\u00bb.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/haki-pri-rabote-s-bolshim-chislom-melkih-fajlov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0425\u0430\u043a\u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u043c\u0435\u043b\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0418\u0434\u0435\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0441\u043f\u043e\u043d\u0442\u0430\u043d\u043d\u043e \u0438\u0437 \u0434\u0438\u0441\u043a\u0443\u0441\u0441\u0438\u0438 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043a \u0441\u0442\u0430\u0442\u044c\u0435 \u00ab\u041a\u043e\u0435-\u0447\u0442\u043e \u043e\u0431 inode\u00bb.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/haki-pri-rabote-s-bolshim-chislom-melkih-fajlov\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:15:13+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:15:13+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Nipid suure arvu v\u00e4ikeste failidega t\u00f6\u00f6tamiseks | ProHoster","description":"Artikli idee tuli spontaanselt arutelust kommentaarides artikli \"M\u00f5ned asjad inode'ist\".","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/haki-pri-rabote-s-bolshim-chislom-melkih-fajlov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0425\u0430\u043a\u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u043c\u0435\u043b\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 | ProHoster","og:description":"\u0418\u0434\u0435\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0441\u043f\u043e\u043d\u0442\u0430\u043d\u043d\u043e \u0438\u0437 \u0434\u0438\u0441\u043a\u0443\u0441\u0441\u0438\u0438 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043a \u0441\u0442\u0430\u0442\u044c\u0435 \u00ab\u041a\u043e\u0435-\u0447\u0442\u043e \u043e\u0431 inode\u00bb.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/haki-pri-rabote-s-bolshim-chislom-melkih-fajlov","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:15:13+00:00","article:modified_time":"2019-10-31T19:15:13+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36999","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 05:41:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:35:26","updated":"2026-01-22 05:41:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/36999","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=36999"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/36999\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/27728"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=36999"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=36999"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=36999"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}