{"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\/de\/blog\/administrirovanie\/haki-pri-rabote-s-bolshim-chislom-melkih-fajlov","title":{"rendered":"Tipps zum Umgang mit einer gro\u00dfen Anzahl kleiner Dateien","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Die Idee zu diesem Artikel entstand spontan aus einer Diskussion in den Kommentaren zu einem vorherigen Artikel <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/462849\/\">\u201eEinige Informationen \u00fcber Inodes\u201c<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Tipps zum Umgang mit einer gro\u00dfen Anzahl kleiner Dateien\" src=\"\/wp-content\/uploads\/2019\/08\/e488f5985cfb0b3274f57f6baeeedf01.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas Besondere an der internen Funktionsweise unserer Dienste ist die Speicherung einer enormen Anzahl kleiner Dateien. Aktuell haben wir etwa mehrere hundert Terabyte solcher Daten. Dabei sind wir auf einige offensichtliche sowie weniger offensichtliche Probleme gesto\u00dfen und haben erfolgreich deren Herausforderungen gemeistert.<\/p>\n<p>Daher teile ich unsere Erfahrungen, die vielleicht f\u00fcr andere n\u00fctzlich sein k\u00f6nnten.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Problem eins: \u201eKein Speicherplatz mehr auf dem Ger\u00e4t\u201c<\/h2>\n<p>\nWie in dem oben genannten Artikel erw\u00e4hnt, besteht das Problem darin, dass zwar freie Bl\u00f6cke im Dateisystem vorhanden sind, die Inodes jedoch ersch\u00f6pft sind.<\/p>\n<p>Die Anzahl der verwendeten und freien Inodes kann mit dem Befehl \u00fcberpr\u00fcft werden <code>df -ih<\/code>:<\/p>\n<p><img decoding=\"async\" alt=\"Tipps zum Umgang mit einer gro\u00dfen Anzahl kleiner Dateien\" src=\"\/wp-content\/uploads\/2019\/08\/ceb86a22562aa08c8ffbbde2c2618545.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIch werde den Artikel nicht erneut wiederholen, aber kurz gesagt gibt es auf der Festplatte sowohl Bl\u00f6cke f\u00fcr die Daten selbst als auch Bl\u00f6cke f\u00fcr die Metainformationen, die als inodes (Indexknoten) bekannt sind. Ihre Anzahl wird bei der Initialisierung des Dateisystems festgelegt (wir sprechen hier von ext2 und seinen Nachfolgern) und \u00e4ndert sich danach nicht. Das Gleichgewicht zwischen Datenbl\u00f6cken und inodes wird aus durchschnittlichen Daten berechnet; in unserem Fall, wo es viele kleine Dateien gibt, sollte das Gleichgewicht zugunsten der Anzahl der inodes verschoben werden \u2013 es sollten mehr inodes vorhanden sein.<\/p>\n<p>In Linux wurden bereits Optionen mit unterschiedlichem Gleichgewicht vorgesehen, und all diese vorab berechneten Konfigurationen befinden sich in der Datei <code>\/etc\/mke2fs.conf<\/code>.<br \/>\nDaher kann beim anf\u00e4nglichen Initialisieren des Dateisystems mit mke2fs das gew\u00fcnschte Profil angegeben werden.<\/p>\n<p>Hier sind einige Beispiele aus der Datei:<\/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>\nDie gew\u00fcnschte Nutzung kann mit der Option &#171;-T&#187; beim Aufruf von mke2fs ausgew\u00e4hlt werden. Alternativ k\u00f6nnen die erforderlichen Parameter auch manuell festgelegt werden, falls keine fertige L\u00f6sung vorhanden ist.<\/p>\n<p>Weitere Einzelheiten sind in den Handb\u00fcchern f\u00fcr <code>mke2fs.conf<\/code> und <code>mke2fs<\/code>.<\/p>\n<p>Eine in dem oben genannten Artikel nicht behandelte Besonderheit ist die M\u00f6glichkeit, die Blockgr\u00f6\u00dfe festzulegen. Es liegt auf der Hand, dass f\u00fcr gro\u00dfe Dateien eine gr\u00f6\u00dfere Blockgr\u00f6\u00dfe sinnvoll ist, w\u00e4hrend f\u00fcr kleinere Dateien eine kleinere Blockgr\u00f6\u00dfe vorteilhaft ist. <\/p>\n<p>Es ist jedoch wichtig, eine interessante Eigenschaft zu ber\u00fccksichtigen: die Architektur des Prozessors.<br \/>\nIch habe irgendwann einmal dar\u00fcber nachgedacht, dass ich f\u00fcr gro\u00dfe Fotodateien eine gr\u00f6\u00dfere Blockgr\u00f6\u00dfe ben\u00f6tige. Das Ganze fand unter Heimbedingungen auf meiner WD-Festplatte mit ARM-Architektur statt. Nach kurzer \u00dcberlegung stellte ich die Blockgr\u00f6\u00dfe auf entweder 8k oder 16k statt des Standardwerts von 4k ein, nachdem ich die Einsparungen gemessen hatte. Alles lief gro\u00dfartig, bis die Festplatte ausfiel, w\u00e4hrend die Daten noch intakt waren. Als ich die Festplatte in einen normalen Computer mit einem klassischen Intel-Prozessor einbaute, erhielt ich die \u00dcberraschung: Nicht unterst\u00fctzte Blockgr\u00f6\u00dfe. Tja. Die Daten waren da, alles gut, aber ich konnte sie nicht lesen. Prozessoren wie i386 und \u00e4hnliche Modelle k\u00f6nnen mit Blockgr\u00f6\u00dfen nicht umgehen, die nicht mit der Seitengr\u00f6\u00dfe des Speichers \u00fcbereinstimmen, und diese betr\u00e4gt genau 4k. Im Gro\u00dfen und Ganzen endete es damit, dass ich Tools aus dem Benutzerraum verwendete; alles war langsam und traurig, aber ich konnte die Daten retten. Wer interessiert ist, kann nach dem Namen des Tools googeln. <code>fuseext2<\/code>. Moral: Entweder alle F\u00e4lle im Voraus durchdenken oder sich nicht als Superheld zu f\u00fchlen und die Standardoptionen f\u00fcr den Hausgebrauch nutzen.<\/p>\n<p>UPD. Auf den Hinweis des Benutzers <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/berez\/\" class=\"user_link\">berez<\/a><\/noindex> Ich m\u00f6chte klarstellen, dass die Blockgr\u00f6\u00dfe f\u00fcr i386 4 k nicht \u00fcberschreiten darf, aber sie muss nicht unbedingt genau 4 k betragen; d.h., 1 k und 2 k sind zul\u00e4ssig.<\/p>\n<p>So haben wir die Probleme gel\u00f6st.<\/p>\n<p>Zun\u00e4chst standen wir vor dem Problem, dass die mehrterabyte gro\u00dfe Festplatte mit Daten voll war und wir die Konfiguration des Dateisystems nicht \u00e4ndern konnten.<\/p>\n<p>Zweitens war eine schnelle L\u00f6sung erforderlich.<\/p>\n<p>Am Ende kamen wir zu dem Schluss, dass wir das Verh\u00e4ltnis ver\u00e4ndern m\u00fcssen, indem wir die Anzahl der Dateien reduzieren.<br \/>\nUm die Anzahl der Dateien zu verringern, haben wir beschlossen, die Dateien in einem gemeinsamen Archiv abzulegen. Angesichts unserer Besonderheiten haben wir alle Dateien \u00fcber einen bestimmten Zeitraum in ein Archiv gepackt und die Archivierung mit einem Cron-Job t\u00e4glich nachts durchgef\u00fchrt.<\/p>\n<p>Sie haben ein zip-Archiv ausgew\u00e4hlt. In den Kommentaren zum vorherigen Artikel wurde tar vorgeschlagen, aber damit gibt es eine Schwierigkeit: Es hat kein Inhaltsverzeichnis, und die Dateien liegen sequenziell darin (nicht umsonst ist \u201etar\u201c eine Abk\u00fcrzung f\u00fcr \u201eTape Archive\u201c, ein Erbe von Bandlaufwerken). Das bedeutet, wenn Sie eine Datei am Ende des Archivs lesen m\u00fcssen, m\u00fcssen Sie das gesamte Archiv durchlesen, da es keine Offset-Informationen f\u00fcr jede Datei relativ zum Anfang des Archivs gibt. Das ist eine langwierige Operation. Bei zip sieht es viel besser aus: Es hat das genannte Inhaltsverzeichnis und Offsets f\u00fcr die Dateien innerhalb des Archivs, und die Zugriffszeit auf jede Datei ist nicht von ihrem Standort abh\u00e4ngig. In unserem Fall konnten wir auch die Komprimierungsoption \u201e0\u201c festlegen, da alle Dateien bereits im gzip-Format komprimiert waren.<\/p>\n<p>Die Kunden greifen \u00fcber nginx auf die Dateien zu, und laut dem alten API wird einfach der Dateiname angegeben, zum Beispiel so:<\/p>\n<pre><code class=\"plaintext\">http:\/\/www.server.com\/hydra\/20170416\/0453\/3bd24ae7-1df4-4d76-9d28-5b7fcb7fd8e5\n<\/code><\/pre>\n<p>\nUm die Dateien on-the-fly zu entpacken, haben wir das Modul nginx-unzip-module gefunden und eingebunden (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/youzee\/nginx-unzip-module\">https:\/\/github.com\/youzee\/nginx-unzip-module<\/a><\/noindex>) und zwei Upstreams konfiguriert.<\/p>\n<p>Das Ergebnis war folgende Konfiguration:<\/p>\n<p><img decoding=\"async\" alt=\"Tipps zum Umgang mit einer gro\u00dfen Anzahl kleiner Dateien\" src=\"\/wp-content\/uploads\/2019\/08\/56f5210669fecfe194ac5907d563aa1d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDie beiden Hosts in den Einstellungen sahen so aus:<\/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>\nUnd die Konfiguration der Upstreams auf dem \u00fcbergeordneten Nginx:<\/p>\n<pre><code class=\"json\">upstream storage {\n  server server.com:8081;\n  server server.com:8082;\n}\n<\/code><\/pre>\n<p>\nSo funktioniert es:<\/p>\n<ul>\n<li>Der Client geht zum Front-Nginx<\/li>\n<li>Der Front-Nginx versucht, eine Datei vom ersten Upstream, d.h. direkt vom Dateisystem, bereitzustellen.<\/li>\n<li>Wenn die Datei nicht vorhanden ist, versucht er, sie vom zweiten Upstream bereitzustellen, der die Datei innerhalb des Archivs sucht.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Zweites Problem: wieder \"No space left on device\"<\/h2>\n<p>\nDies ist das zweite Problem, mit dem wir konfrontiert wurden, als im Verzeichnis viele Dateien waren.<br \/>\nWir versuchen, eine Datei zu erstellen, das System beschwert sich, dass kein Platz vorhanden ist. Wir \u00e4ndern den Dateinamen und versuchen es erneut.<\/p>\n<p>Es klappt.<\/p>\n<p>Sieht ungef\u00e4hr so aus:<\/p>\n<p><img decoding=\"async\" alt=\"Tipps zum Umgang mit einer gro\u00dfen Anzahl kleiner Dateien\" src=\"\/wp-content\/uploads\/2019\/08\/f365358b59bf81d450a236dfb58e4874.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDie \u00dcberpr\u00fcfung der Inodes hat nichts ergeben \u2013 es gibt viele freie. <br \/>\nDie \u00dcberpr\u00fcfung des Platzes \u2013 das gleiche.<br \/>\nWir dachten, vielleicht gibt es zu viele Dateien im Verzeichnis, und es gibt daf\u00fcr eine Begrenzung, aber nein: Maximale Anzahl von Dateien pro Verzeichnis: ~1,3 \u00d7 10^20<\/p>\n<p>Eine Datei kann auch erstellt werden, wenn man den Namen \u00e4ndert.<br \/>\nFazit \u2013 das Problem liegt im Dateinamen.<\/p>\n<p>Weitere Nachforschungen ergaben, dass das Problem im Hash-Algorithmus beim Erstellen des Katalogindex liegt. Bei einer gro\u00dfen Anzahl von Dateien treten Kollisionen auf, mit allen damit verbundenen Folgen. Mehr dazu k\u00f6nnen Sie hier lesen: <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>Diese Option kann deaktiviert werden, aber\u2026 die Suche nach einer Datei per Namen k\u00f6nnte unvorhersehbar lange dauern, wenn alle Dateien durchgesehen werden m\u00fcssen. <\/p>\n<pre><code class=\"bash\"> tune2fs -O \"^dir_index\" \/dev\/sdb3\n<\/code><\/pre>\n<p>\nInsgesamt k\u00f6nnte das als vor\u00fcbergehende L\u00f6sung funktionieren.<\/p>\n<p>Lehre: Viele Dateien in einem Verzeichnis sind in der Regel schlecht. So sollte man es nicht machen.<\/p>\n<p>In solchen F\u00e4llen erstellt man normalerweise Unterverzeichnisse, basierend auf den ersten Buchstaben des Dateinamens oder anderen Parametern, wie zum Beispiel nach Daten. Das rettet in den meisten F\u00e4llen.<br \/>\nAber die Gesamtzahl der kleinen Dateien ist trotzdem schlecht, selbst wenn sie in Verzeichnissen aufgeteilt sind \u2013 dann siehe erstes Problem.<\/p>\n<h2>Drittes Problem: Wie man die Liste der Dateien anzeigt, wenn es viele sind.<\/h2>\n<p>\nIn unserer Situation, in der wir viele Dateien haben, sind wir auf das Problem gesto\u00dfen, wie man den Inhalt des Verzeichnisses anzeigen kann.<\/p>\n<p>Die Standardl\u00f6sung ist der Befehl <code>ls<\/code>.<br \/>\nOk, sehen wir, was mit 4.772.098 Dateien herauskommt:<\/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 Sekunden\u2026 das ist zu viel. Die meiste Zeit geht f\u00fcr die Verarbeitung der Dateien im User-Space drauf und nicht f\u00fcr die Kernarbeit.<\/p>\n<p>Aber es gibt eine L\u00f6sung:<\/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 Sekunden. Zehnmal schneller.<br \/>\nHurra!<\/p>\n<p><b>UPD.<\/b><\/p>\n<p>Eine noch schnellere L\u00f6sung vom Nutzer <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/berez\/\" class=\"user_link\">berez<\/a><\/noindex> \u2014 Sortierung bei <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>Problem Nummer vier: hohe LA bei der Arbeit mit Dateien<\/h2>\n<p>\nGelegentlich tritt die Situation auf, in der man eine Menge Dateien von einer Maschine auf eine andere kopieren muss. Dabei kann der LA oft erheblich steigen, da alles von der Performance der Festplatten abh\u00e4ngt.<\/p>\n<p>Das Vern\u00fcnftigste, was man tun kann, ist \u2014 SSDs zu verwenden. Wirklich gro\u00dfartig. Die einzige Frage ist der Preis f\u00fcr Multi-Terabyte-SSDs.<\/p>\n<p>Aber wenn es sich um normale Festplatten handelt, die Dateien kopiert werden m\u00fcssen und es sich um ein Produktionssystem handelt, bei dem eine \u00dcberlastung zu unzufriedenen Kunden f\u00fchrt? Es gibt mindestens zwei n\u00fctzliche Werkzeuge: <code>nice<\/code> und <code>ionice<\/code>.<\/p>\n<p><code>nice<\/code> \u2014 reduziert die Priorit\u00e4t des Prozesses, wodurch der Scheduler mehr Zeitquantante an anderen, priorit\u00e4ren Prozessen zuteilt.<br \/>\nIn unserer Praxis hat es geholfen, den maximalen Wert (19 ist die niedrigste Priorit\u00e4t, -20 (minus 20) ist der h\u00f6chste) festzulegen.<\/p>\n<p><code>ionice<\/code> \u2014 entsprechend wird die Eingabe-\/Ausgabepriorit\u00e4t (I\/O-Scheduling) angepasst.<\/p>\n<p>Falls Sie RAID verwenden und es pl\u00f6tzlich synchronisieren muss (nach einem fehlgeschlagenen Reboot oder zur Wiederherstellung des RAID-Verbunds nach dem Austausch einer Festplatte), kann es in bestimmten Situationen sinnvoll sein, die Synchronisationsgeschwindigkeit zu reduzieren, damit die \u00fcbrigen Prozesse einigerma\u00dfen vern\u00fcnftig arbeiten k\u00f6nnen. Dieser Befehl kann dabei helfen:<\/p>\n<pre><code class=\"bash\">\necho 1000 &gt; \/proc\/sys\/dev\/raid\/speed_limit_max\n<\/code><\/pre>\n<p><\/p>\n<h2>Problem f\u00fcnf: Wie man Dateien in Echtzeit synchronisiert.<\/h2>\n<p>\nWir haben all die riesigen Mengen an Dateien, die auf einen zweiten Server gesichert werden m\u00fcssen, um\u2026 Die Dateien werden st\u00e4ndig geschrieben, deshalb m\u00fcssen sie m\u00f6glichst schnell kopiert werden, um minimale Verluste zu gew\u00e4hrleisten.<\/p>\n<p>Die Standardl\u00f6sung: Rsync \u00fcber SSH.<\/p>\n<p>Das ist eine gute Option, es sei denn, es muss alle paar Sekunden erfolgen. Es gibt viele Dateien. Selbst wenn man sie nicht kopiert, muss man irgendwie verstehen, was sich ge\u00e4ndert hat, und mehrere Millionen Dateien zu vergleichen, kostet Zeit und belastet die Festplatten.<\/p>\n<p>Das bedeutet, dass wir sofort wissen m\u00fcssen, was wir kopieren sollen, ohne jedes Mal einen Vergleich zu starten.<\/p>\n<p>Rettung \u2014 <code>lsyncd<\/code>. <code>Lsyncd<\/code> \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/axkibe.github.io\/lsyncd\/\">Live Syncing (Mirror) Daemon<\/a><\/noindex>. Es funktioniert ebenfalls \u00fcber rsync, \u00fcberwacht jedoch zus\u00e4tzlich das Dateisystem auf \u00c4nderungen mithilfe von inotify und fsevents und startet das Kopieren nur f\u00fcr die Dateien, die neu hinzugekommen oder ge\u00e4ndert wurden.<\/p>\n<h2>Problem sechs: wie man herausfindet, wer die Platten belastet<\/h2>\n<p>\nDas wissen wahrscheinlich alle, aber dennoch zur Vollst\u00e4ndigkeit: zur \u00dcberwachung des Datenspeichers gibt es den Befehl <code>iotop<\/code> \u2014 \u00e4hnlich wie <code>top<\/code>, aber er zeigt die Prozesse an, die die Festplatten am intensivsten nutzen.<\/p>\n<p><img decoding=\"async\" alt=\"Tipps zum Umgang mit einer gro\u00dfen Anzahl kleiner Dateien\" src=\"\/wp-content\/uploads\/2019\/08\/56612c618469ef340a31ae446d65ed4e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00dcbrigens erm\u00f6glicht auch das gute alte top zu erkennen, ob es Probleme mit den Platten gibt oder nicht. Daf\u00fcr gibt es zwei besonders geeignete Parameter: <b>Load Average<\/b> und <b>IOwait<\/b>.<\/p>\n<p><img decoding=\"async\" alt=\"Tipps zum Umgang mit einer gro\u00dfen Anzahl kleiner Dateien\" src=\"\/wp-content\/uploads\/2019\/08\/01a0565947de65d13b0045f7180caf5d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDer erste zeigt, wie viele Prozesse auf Bedienung warten; in der Regel ist mehr als 2 bereits ein Alarmzeichen. Bei aktivem Kopieren auf Backup-Server erlauben wir bis zu 6-8, danach gilt die Situation als abnormal.<\/p>\n<p>Der zweite Punkt betrifft, wie stark der Prozessor mit Festplattenoperationen besch\u00e4ftigt ist. Ein IO-Wait von \u00fcber 10 % sollte Anlass zur Besorgnis geben, obwohl wir auf unseren Servern mit spezifischen Lastprofilen stabil 40-50 % beobachten, was tats\u00e4chlich normal ist.<\/p>\n<p>Damit schlie\u00dfe ich ab, obwohl es sicherlich viele Punkte gibt, mit denen wir noch nicht konfrontiert wurden. Ich w\u00fcrde mich freuen, Kommentare und interessante reale F\u00e4lle zu erhalten.<br \/>\n<br \/>Quelle: <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 4.9.10 - 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. \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\" \/>\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\/de\/blog\/administrirovanie\/haki-pri-rabote-s-bolshim-chislom-melkih-fajlov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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. \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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/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\udd47Tipps f\u00fcr den Umgang mit einer gro\u00dfen Anzahl kleiner Dateien | ProHoster","description":"Die Idee zu diesem Artikel entstand spontan aus einer Diskussion in den Kommentaren zu dem Artikel \"Ein bisschen was \u00fcber Inode\". Das Besondere an unseren Diensten ist die Speicherung einer enormen Anzahl kleiner Dateien. Aktuell haben wir Hunderte Terabyte dieser Daten. Dabei sind uns einige offensichtliche und weniger offensichtliche Stolpersteine begegnet, die wir erfolgreich \u00fcberwunden haben. Daher teile ich meine Erfahrungen.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/haki-pri-rabote-s-bolshim-chislom-melkih-fajlov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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. \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","og:url":"https:\/\/prohoster.info\/de\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/36999","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=36999"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/36999\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/27728"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=36999"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=36999"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=36999"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}