Názory k článku
Defragmentace disků v Linuxu
Jak defrag pracuje?
celé vláknoZatím všechny mě známé programy, které "defragmentovaly" svazky nezávilse a filesystému to dělaly tak, že každý soubor zkopírovaly a následně změnily link současného souboru na zkopírovaný (což je ostudně hloupá metoda, na kterou nemusíte mít žádný program - stačí jeden bash one-liner). Defrag k této práci asi používá rsync, což je zajímavé.. ;) (na to, že rsync je program na synchronizaci složek)
Více mě ale zajímá to, jak defrag zjistí počet fragmentů souboru - pokud vím, na úrovni Linux VFS neexistuje žádná rutina, na základě které by se to dalo deterministicky zjistit. Bojím se toho, že defrag pouze určitým způsobem odhaduje počet fragmentů porovnáním velikosti souboru, času O_DIRECT přečtení souboru a rychlosti sekvenčního čtení disku (hdparm -tT --direct, pokud chcete změřit svůj disk). Budu rád, pokud mi toto někdo vyvrátí.
Tolik můj kousek do pranice - neříkám, že defrag nedělá nic, ale já bych k schopnostem takovéhoto programu přistupoval mnohem více skepticky než autor.
Re: Jak defrag pracuje?
celé vláknofragresult=subprocess.Popen(["filefrag",file],stdout=subprocess.PIPE).communicate()[0]
takze na zjisteni fragmentace to pozuiva nejaky program filefrag, ktery nemam, ale google ho celkem zna, takze asi v nekterych distribucich bude bezne.
Samotna defragmentace probiha zkopirovanim rsyncem, takze zadna zazracna metoda se nekona.
Re: Jak defrag pracuje?
celé vláknoRe: Jak defrag pracuje?
celé vláknoRe: Jak defrag pracuje?
celé vláknoVíce mě ale zajímá to, jak defrag zjistí počet fragmentů souboru - pokud vím, na úrovni Linux VFS neexistuje žádná rutina, na základě které by se to dalo deterministicky zjistit. Bojím se toho, že defrag pouze určitým způsobem odhaduje počet fragmentů porovnáním velikosti souboru, času O_DIRECT přečtení souboru a rychlosti sekvenčního čtení disku (hdparm -tT --direct, pokud chcete změřit svůj disk). Budu rád, pokud mi toto někdo vyvrátí.Mno, já si zkusmo zbastlil tohle:
#include <stdio.h>
#include <linux/fs.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>
int main(int argc, char **argv)
{
int fd=0, block, block_size, block_position, fragment_size=0, last_block_position, fragments=1;
struct stat st;
if (argc < 2)
{
printf("Enter a file name.\n");
exit(EXIT_FAILURE);
}
printf("File: '%s'\n", argv[1]);
fd = open(argv[1], O_RDONLY);
if(fd==-1)
{
perror(argv[1]);
exit(EXIT_FAILURE);
}
if (stat(argv[1], &st) == -1)
{
perror("stat");
exit(EXIT_FAILURE);
}
if (ioctl(fd, FIGETBSZ, &block_size) == -1)
{
perror("ioctl");
exit(EXIT_FAILURE);
}
printf("File size: %d (%d blocks, a block has %d bytes)\n", (int)st.st_size, 1+((int)st.st_size/block_size), (int)block_size);
for (block=0; block<=st.st_size/block_size; block++)
{
last_block_position = block_position;
block_position = block;
if (ioctl(fd, FIBMAP, &block_position) == -1)
{
perror("ioctl");
exit(EXIT_FAILURE);
}
/* printf("%d: %d\n", block, block_position); */
if (fragment_size > 0 && block_position != last_block_position+1)
{
printf("A fragment (%d blocks) ends at block %d\n", fragment_size, block);
fragment_size = 0;
fragments++;
}
else
{
fragment_size++;
}
}
printf("Total: The file has %d fragments with average size of %.1f blocks each.\n", fragments, (1+st.st_size/block_size)/(double)fragments);
exit(0);
}
Je to "narychlo zprasené" (jsou tři ráno ;-)), ale zdá se mi, že to funguje. :-) (A nekamenovat za formu, prosím, Cčko neumím. ;-))
Re: Jak defrag pracuje?
celé vláknonb-esprimo /usr/portage/distfiles # filefrag -v tetex-src-3.0_p1.tar.gz.new Checking tetex-src-3.0_p1.tar.gz.new Filesystem type is: 52654973 Filesystem cylinder groups is approximately 80 Blocksize of file tetex-src-3.0_p1.tar.gz.new is 4096 File size of tetex-src-3.0_p1.tar.gz.new is 13357541 (3262 blocks) First block: 79879 Last block: 84138 Discontinuity: Block 221 is at 80101 (was 80099) -- vzdálenost mezi fragmenty je jen 1 blok Discontinuity: Block 993 is at 81867 (was 80872) -- vzdálenost ~1000 bloků (4MB) Discontinuity: Block 1010 is at 81885 (was 81883) -- vzdálenost 1 blok Discontinuity: Block 2013 is at 82889 (was 82887) -- 1 blok Discontinuity: Block 3033 is at 83910 (was 83908) -- 1 blok tetex-src-3.0_p1.tar.gz.new: 6 extents foundFilefrag tedy reportuje 6 fragmentů, ale prakticky jsou pouze 2 (2 čtení s díru 1 blok spojí kernel do jednoho čtení, a když to neudělá kernel, tak to spadne do disk readaheadu). Jediné, co nevím, je jestli reiserfs dělá tyto díry schválně a jsou prázdné, či jestli to jsou data jiných souborů (jednoblokových souborů mám hodně - portage), či metadata.
no jo, to je super
celé vláknostahnuti
celé vláknoRe: stahnuti
celé vláknohttp://codebrowse.launchpad.net/~jdong/pyfragtools/trunk/files
Re: stahnuti
celé vláknoRe: stahnuti
celé vláknoTo jsem potřeboval
celé vláknoRe: To jsem nepotřeboval
celé vláknoRe: To jsem nepotřeboval
celé vláknoRe: To jsem nepotřeboval
celé vláknoRe: To jsem potřeboval
celé vláknoRe: To jsem potřeboval
celé vláknoFrags/MB Before: 9494992.74
Frags/MB After: 9494992.74
Improvement: -0.0 %
Snim ci bdim?
Re: To jsem potřeboval
celé vláknoRe: To jsem potřeboval
celé vláknoA vysledok?
celé vláknocas nabehu a vypnutia systemu, cas kompilacie kernelu, a podobne. Lebo ak to prinesie zrychlenie o 0.0001% tak to nema zmysel
Re: A vysledok?
celé vláknoRe: A vysledok?
celé vláknoRe: A vysledok?
celé vláknoRe: A vysledok?
celé vláknoRe: A vysledok?
celé vláknoRe: A vysledok?
celé vláknoportdbapi.auxdbmodule = cache.sqlite.database
BTW najrychlejsie riesenie by bolo tmpfs, ale to by bolo treba komp davat do suspend-to-disk alebo suspend-to-ram (miesto shutdown, pripadne z tmpfs pred shutdownom portage tree skopirovat, co zaroven sposobi nizsiu defragmentaciu vzhladom k alokacii tych suborov na disku, lebo sa to kopiruje naraz).
Plus tmpfs sa da zaroven efektne pouzit aj pri emergovani (kompilacia je potom rychlejsia, ak mate dost RAM, treba mountnut tmpfs do /var/tmp).
Re: A vysledok?
celé vláknoRe: A vysledok?
celé vláknoPython?
celé vláknoRe: Python?
celé vláknoPomocí běžných příkazů fs zjistíte fragmentaci a pomocí rsync to s největší pravděpodobností (nemáte plný disk) defragmentujete (protože jakýsi výchozí stav je u ne FAT systémů "nefragmentováno", že).
Re: Python?
celé vláknoK druhe casti - pokud uz si tedy dal vubec nekdo tu temer zbytecnou praci s psanim defragmentatoru, je za prve uplne jedno, jestli je v pythonu, C, jave nebo assembleru, za druhe, ac se to nemusi zdat, muzou ty vysledky z dlouhodobeho hlediska byt vyrazne lepsi, nez presun kompletniho obsahu filesystemu na zacatek disku ;) (o nutne podmince ve WXP - uzivateli, ted se pokud mozno 10 hodin nedotykej klavesice a mozna ani to nebude stacit (tu logiku algoritmu bych nekdy mimochodem rad pochopil) - ani nemluve).
Takze, priste min narazek na kvalitu clanku a vice premyslet!
Re: Python?
celé vláknoVe Windows se používá System Restore, kde se ukládají změny v systému (instalace, odinstalace apod). Tyhle věci jsou komprimované na úrovni FS, a jej jich hromada. Při kompresi na úrovni FS se soubor silně fragmentuje (tuším, že se komprimují bloky 16 clusterů, takže komprimovaný soubor je pak na disku děravý jak řešeto). V praxi to samozřejmě ničemu nevadí, protože se komprimují soubory, které se používají minimálně (třeba ty data System Restore), ale FS je pak více fragmentovaný.
Re: Python?
celé vláknoto co popisujete je dle meho nazoru proste vadny navrh aplikace. a resenim je pouzivat neco jineho nez nejake system restore ktere popisujete.
a abych parafrazoval: snad to nejkdy budete moci udelat (ve smyslu: svobodne se rozhodnout ze tu a tu konkretni cast windows nebudete pouzivat, protoze vam nevyhovuje)
Re: Python?Re: Python?
celé vláknoRe: Python?Re: Python?
celé vláknoRe: Python?Re: Python?Re: Python?Re: Python?
celé vláknoRe: Python?Re: Python?
celé vláknoTam ani tak nejde o tie SysRestore súbory, k tým sa moc nepristupuje, skôr o tie, čo sa natlačia do dier medzi ne (netvrdil by som že "vliv na výkon nulový").
Re: Python?Re: Python?
celé vláknoRe: Python?Re: Python?
celé vláknoNapr. alokátor usúdi, že file1 sa tam zmestí, dá ho tam, do ďalšej diery dá file2, pretože je blízko file1, takže sa moc seekovať nebude, ale takýmto spôsobom ak sa tam narve tak 100-500 fajlov (lebo každý je blízko predchádzajúcemu), tak to už seekovať bude dosť pri náhodnom prístupe k nim (napr. inštalátor ich tam narve a aplikácia k ním nejakým úplne iným spôsobom bude pristupovať, čo je bežný use case).
Fragmentovaný free space je podobne blbý ako fragmentované fajly (tam závisí, či sa viac číta, alebo viac maže/vytvára).
Re: Python?
celé vláknoRe: Python?
celé vláknoRe: Python?
celé vláknoRe: Python?
celé vláknoRe: Python?
celé vláknoRe: Python?
celé vláknoPo zavření se provádí volání různých háčků (antiviry atd), což v případě vytíženého CPU vede k tomu, že následující smazání souboru selže protože jej má někdo otevřený. Widle to neumí pořešit - otevřený soubor nesmažeš.
Řešil jsem toto v kódu už několikrát - ale jen na windows portu, v unixu nikdy.
Re: Python?
celé vláknoRe: Python?
celé vláknopokud otevřeš (nebo třeba i vytvoříš) soubor, následně ho zavřeš a pak se ho pokusíš smazat tak to s docela vysokou pravděpodobností selžeCo má tohle společného se security descriptory a přístupovými právy?Ano, tomu se prave rika ty security dekriptory a access righty.
To, ze nemuzes nastavit, aby ti jiny proces nemohl smaznout file (co asi podle tve reakce v linuxu nejde) bych povazoval za velmi zasadni nedostatek file systemu...No tak kdo co může smazat se řeší pomocí přístupových práv, případně nějakých mandatory access control, ne?
Re: Python?
celé vláknohttp://msdn2.microsoft.com/en-us/library/aa363858.aspx
Re: Python?
celé vláknoCo jsem prehledl?
Re: Python?
celé vláknoRe: Python?
celé vláknoÚplně to zakázat sice nejde (root může všechno), ale souborový systém si umí poradit i s tím, že mi někdo ten soubor pod rukama ukradne nebo smaže. V UNIXu jsou otevřené inody, ne VFS cesty. Když někdo zruší VFS cestu (smazáním nebo přesunutím souboru), inode buď existuje dál s jinou VFS cestou, nebo bude existovat ještě tak dlouho, dokud ho nezavřou všechny programy, přestože VFS cesta už neexistuje.
Re: Python?
celé vláknoRe: Python?
celé vláknoPokud lze Unixu neco v tomto smeru vytkout, pak je to API na mazani souboru. Soubor nemohu smazat pres ofile (pres handle), ale jen pres cestu. Vzdy je tam jiste okenko mezi tim, co si overim "/cesta/soubor je to, co chci smazat" a co provedu "smaz /cesta/soubor". Pokud bych mohl pouzit ofile (handle), mel bych jistotu o identite toho, co mazu.
Re: Python?
celé vláknoRe: Python?
celé vláknoRe: Python?
celé vláknoRe: Python?
celé vláknoRe: Python?
celé vláknoRe: Python?
celé vláknoPokud chcete defragmentovat jednotlivé soubory, viz utilita contig od sysinternals. Ve Vistě to řešit nemusíte, protože defrag běží jako plánovaná úloha každých pár dní. A běží s nízkou prioritou I/O operací, takže uživatele nijak neomezuje. Třeba se to unixy také jednou naučí ;)
Re: Python?
celé vláknoRe: Python?
celé vláknoV NT4 bylo API pro defragmentaci, a nástroj dodávala společnost Executive Software v základní verzi zdarma. Ve Win2K i XP samozřejmě defragmentace funguje. Jsou tam pochopitelně omezení. Je také důležité si uvědomit, že není účelem mít celý disk ve vizualizaci defragu v zelené barvě, ale mít dobrý výkon FS. To není nezbytně totéž. Například 600MB file se 20 fragmenty není žádný problém.
Re: Python?
celé vláknoVykon disku pro i/o operace a jeho defragmentace jsou (mebo alespon muzou byt) dve rozdilne veci:
Defragmentace podle mne znamena, ze data souboru jsou za sebou fyzicky umistena byte po bytu, bez nutnosti preskakovat jakekoliv nesouvisejici "mezi-clustery".
Vykon zase znaci, ze casto ctene soubory jsou fyzicky presunuty takovym zpusobem, aby nedochazelo ke zbytecnym prodlevam pri jejich cteni. V nekterych pripadech to muze odpovidat vyse zminene defragmentaci, v jinych se zase data paralelne "rozprostrou" mezi vsechny plotny disku tak, aby nedochazelo ke zbytecnemu komihani hlavicek disku.
Jestli se v necem mylim, rad si prectu jine vysvetleni.
Re: Python?
celé vláknoRe: Python?
celé vláknoMusim te zklamat, unixy rovnez umi planovane spoustet ulohy na pozadi s nastavitelnou prioritou, rekl bych dokonce, ze dele nez vubew windows existuji :-).
Re: Python?
celé vláknoRe: Python?
celé vláknoRe: Python?
celé vláknoKdo vám zaručí, že v něčem,co si stáhnete pro Linux (včetně vlastního distra) není nějaké svinstvo? Asi nikdo, že?
Re: Python?
celé vláknoSheduler s GUI byl v NT Ressource Kitu. Byl uplne hrozny, neco, co by napsali pionyri v hodinach vyuky programovani na IQ151. A rikejte si, co chcete, na Win NT a vyse jedine ntcron. Navic, byly i doby, kdy se Microsoftu zahadne ztracely polozky at scheduleru z registry. Pravda, je to jiz dlouho.
Svinstvo muze byt vsude, nicmene oficialni fajl v distru nebo ze site Microsoftu je pravdepodobne cisty, i kdyz v obou pripadech se chybicka vloudila. Microsoft mel viry, nejaka lokalizovana verze nejakeho distra mela rootkit. Ovsem kdyz pujdete na Tucows nebo warez sajty, riskujete mnohem vic.
Re: Python?
celé vláknoV NT4 po instalaci nějakého SP nebo verze MSIE byl k dispozici plánovač podobný tomu ve Windows 98 nebo Windows 2000. Ruku do ohně za to ale dávat nebudu. Položky AT se mi z registry neztrácely. Tedy ztrácely, poté co se job provedl ;)
Oficální file v distru možná bude OK. Když ovšem něco stáhnete, tak je to bez digitálního podpisu sázkou do loterie. Proto MS své soubory podepisuje.
Re: Python?
celé vláknoTypicka instalace Linuxu obsahuje prakticky vse z oficialni distribuce. Nevim, jestli vsechna distra pouzivaji podpisy nebo md5sum nebo neco v tom stylu, ale koncept rozhodne neni neznamy.
Typicka instalace Windows obsahuje par veci od Microsoftu a hafo veci z jinych, casto neoveritelnych a casto naprosto neduveryhodnych zdroju.
Riziko je u neoficialnich veci vyssi i na Windows. Pro Linux byva zverejnovan spise zdrojak, protoze by jinak autor musel delat binarky pro kdejake distro. Na Windows je temer vzdycky binarka, zdrojak by stejne nebylo cim zkompilovat.
Re: Python?
celé vláknoAno, unixy umí pouštět plánované úlohy. Ovšem málo který unix umí řídit prioritu I/O operací. A Linux (mimochodem ještě pořád nemá ani prioritizaci IRQ?) mezi takové systémy nepatří. Abych to vysvětlil i pro eee: priorita procesu nezajišťuje, že nezabere velké procento přenosového pásma disku. Proces s nízkou prioritou dostane čas procesoru, jen pokud ho nikdo jiný zrovna nepotřebuje (odborníci odpustí zjednodušení). Bohužel pokud proces s nízkou prioritou například prochází adresáře a čte soubory, vygeneruje s klidem přes svou nízkou prioritu daleko více I/O operací, než ostatní procesy dohromady. Ostatní procesy potom čekají na disk, a celý systém je tuhý. Proto má Vista řízení priority I/O operací, a možnost zaručeného průtoku dat.
Re: Python?
celé vláknoRe: Python?
celé vláknoRe: Python?
celé vláknoRe: Python?
celé vlákno"One of the coolest things about CFQ is that it features I/O priorities (since 2.6.13). That means you can set the I/O priority of a process so you can avoid that a process that does too much I/O (daily updatedb) starves the rest of the system, or give extra priority to a process that shouldn't be starved by other processes, by using the ionice tool included in schedutils (since version 1.5.0)."Co přesně potřebujete, že Vám tohle nestačí?
Re: Python?
celé vláknoRe: Python?
celé vláknoA Linux (mimochodem ještě pořád nemá ani prioritizaci IRQ?) mezi takové systémy nepatří.Já mám v dokumentaci "Linux supports io scheduling priorities and classes since 2.6.13 with the CFQ io scheduler", a co mohu vypozorovat, skutečně mi to funguje. :-)
Re: Python?
celé vláknoRe: Python?
celé vláknoRe: Python?
celé vláknojisteze to musi delat jinak! ten windowsackay FS je tak spatny ze tam vznika fragmentace uz i pouhym kopirovanim, takze by jim to kopirovani je zhorsovalo stav.
naopak vyspele FS se maji tendence dostavat pohybem souboru zpet do rovnovazneho stavu... sorry ale to je setsakra velky rozdil!
windows proste nemaji momentalne z tohoto pohledu zadny fs kterym by dokazali zaujmout. a nevypada to ze by dokazali vyvynout, ukradnout nebo jak to ted delaji ... neco co by mohli nabidnout jako opravdovy FS. Ledaze by si malomeci koupili k pristim vanocum ZFS...:-)
Re: Python?
celé vláknoSamozrejme z principu veci bude treba na file serveru, kde budou HDTV filmy, podstatne mene fragmentovane na FAT32, ale to jen tak mimochodem .... to, ze nekomu bezi linux x let bez fragmentace, kterou si nemuze objektivne zjistit je fakt super:) Linux se svyma 250 tisici malickych souboru, kde se vetsina vejde do jednoho logickeho clusteru, to je fakt srovnani jak cyp! Pokud budete ten filesystem skutecne pouzivat a budete tam mit mp3ky, filmy a vsechno, tak se samozrejme zafragmentuje uplne stejne jak cokoliv jineho ...
Ale jinak se bavim, jak hromada zabednenych(zfanatizovanych) linuxaru, ten svuj malicky filesystem a operacni systemek obecne obhajuje ... co by se stalo, kdyz bych napsal zcela objektivni fakt, ze NTFS je architektonicky podstatne lepsi nez EXT3FS.
To by tu asi napsala spousta neznalku velky flame o tom, jak je ext3 lepsi i navzdory tomu, ze nemaji ani nejmensi paru ani o tak zakladni veci, co ktera zkratka vlastne vubec znamena:o)
Re: Python?
celé vláknoRe: Python?
celé vláknoJen tak nastinim, ze defragmentace, teda aspon za mych mladych let, byla povazovana za vypocetne velmi narocny algoritmus na optimalizaci, nicmene to se asi zmenilo, kdyz se to dela v pythonu, stylem: zkusim to 10x a kdyz to nepomuze, tak uz se to asi nezlepsi:)
Ale jako takove technicke introduction, kde asi ty linuxy dneska technologicky jsou, je to vhodne. Jen tak pro informaci, NTFS 3.1 je z vyse jmenovanych FS nejnovejsi, da se teda predpokladat, ze bude implementovat nejnovejsi technologie, chapu, ze lidi tu technologicky umreli u windows 95 (nekteri 3.11) a u FAT a s tim vse srovnavaji, ale jen jsem chtel pripomenout, ze je tu treba to NTFS, proti ktere jsou veci jako ext3fs technologicky po vsech strankach zastarale ... ale zase proc se hadat s lidma, co nevi, ze NTFS ma security descriptory a tvrdi, ze jen linux dokaze smazat pouzivany soubor ... no, fakt hazeni pervitinu svinim ...
Re: Python?
celé vláknoJinak s temi ACL se na Windows NT da nadelat takovy bordel, ze uz pak nikdo nevi, co, jak, kdy a proc a jiz to jen tak ze setrvacnosti existuje. Nastroj, ktery by se to vypsalo do nejakeho csv a prohrablo programem, neexistuje. Existuji utilitky z Ressource Kitu, ktere obvykle neumi nastavit separator ve vypisu a tak jsou na hovno. Diky nazvum s mezerami se programove tezko odlisuje, kde co konci a kde zacina neco jine. A pokud do te NT site hrabne nekdo s enhanced ACL editorem nebo jak se to, je to uz uplny bordel. Kazde z access right, jak je kazdy zna, se rozpadne na dve a mozna vice detailnejsich prav, pricemz zjistit, co cemu odpovida, lze jen systemem pokus-omyl. Primitivni pristupova prava na NIXech stylu ugo maji sve vyhody v pripadech, kdy s nimi lze vystacit. Vznik takoveho chlivku je totiz fyzicky nemozny.
BTW, na NTFS mi chybi symlinky. Hardlinky sice ntfs umi, ale ty moc nepouzivam. Navic Microsoft, jako obvyhle, chytre nedodava utilitku, ktera by s nimi umela. Takze zase zbyva jen sysinternals.
BTW, zda se, ze pervitin svinim nehazis, ale zeres ho sam. Tak nevim, jak pusobi pervitin. Rika se, ze heroin=agresivita, kokain=arogance. Ze by pervitin=anonymita?
Re: Python?
celé vláknoAccess Control List se dá z command line editovat pomocí cals/icals. V praxi se to ale dělá téměř výhradně z GUI. Samozřejmě vACL lze vyrobit bordel, ale zase nabízí velikou flexibilitu. Naštěstí admini vědí, jak s ACL dělat. V unixech musíte vytvářet stovky skupin, místo každé kombinace práv jednu skupinu, což je daleko horší přístup. Pokud máte na unixech ACL (což dodnes není samozřejmé), bordel lze vyrobit stejný, jako ve Windows. Rozdíl je v tom, že ve Windows ho lze v grafickém editoru ACL rychle a pěkně uklidit.
Hardlinky se pravují utilitou fsutil. Obecně se doporučuje je nepoužívat, protože mohou vést k cyklu ve stromu (proto pro ně není GUI).
Re: Python?
celé vláknoA ne vsichni admini vedi, jak s ACL delat. Tedy vedi, jak s ACL delat bordel. 50 serveru, 500 workstejsnu a je to. :-)
Re: Python?
celé vláknoOpravit ACL zpravidla znamená jít do dialogu Advanced, zaškrtnout Replace All a stisknout OK. Smozřejmě existují i složitější manévry ;)
Ano, špatní admini neumí dělat s ACL. Buď jim země lehká.
Re: Python?
celé vláknoRe: Python?
celé vláknoRe: Python?
celé vláknoKterou zkratku neznam?
Re: Python?
celé vláknoZurici flame war me vyprovokovala ke googlovani a nasel jsem zajimavy link: http://www.digit-life.com/articles/ntfs/. Doporucuji precist cast "Part 2. Features of NTFS defragmentatoin" (vcetne preklepu). Zajimave je, ze jednim z duvodu fragmentace je pouzit defragmentacni API, ktera zanechava disk plny malych der, ktere pak OS vyplni pomalu rostoucimi soubory. Nasledne se muze defragmenbtovat znovu a tak porad dokola. Prikladem by mohla byt fragmentace swap file, pokud ho clovek nema nastaven natvrdo na pevnou velikost, jako ja.
Cili se da rici, ze nejlepsi je disk nedefragmentovat, dokud to jede slusne, potom presypat data jinam, zformatovat a nasypat zpet. U systemove partsny se tohle ale dela blbe, clovek potrebuje druhy pocitac a pak jeste musi nasypat zpet MBR. Cili se nam ta defragmentace na Windows nejak komplikuje.
Ze NTFS je architektonicky mnohem lepsi, nez EXT3 sem psat muzes, ovsem chtelo by to krapet podlozit. Propaganda Microsoftu, o kterou se tu asi s nami delis, neni zrovna argumentem. Napis sem zcela objektivni zduvodneni, proc je NTFS lepsi, nez EXT3. Fakt by me to zajimalo. Nepopiram, ze je to robustni FS, ktery prezije docela dost, ale uz se mi stalo, ze jsem nedokazal smazat adresar a v nem lezicich nekolik souboru, ktere se samovolne prejmenovaly (bez padu systemu) na jmena obsahujici otazniky a podobne znaku. Windows NT utilitka na opravu disku (scandisk nebo jak se to) s tim nic nenadelala, pomohl az format. A problemy s fragmentaci a skvele defrag API me take moc nerajcuji.
Re: Python?
celé vláknoLinkovaný článek je postavený na zastaralých informacích. Například kopie prvního bloku se v půjce partition nacházela naposledy na NT 3.51, defragmentace po 16 blocích byla naposledy ve Windows 2000 (s odůvodněním, že tak malá fragmentace nemá vliv na výkon). Defragmentace swapu není problém, protože swap zůstává na své minimální velikosti, dokud nenastane nedostatek paměti. Ta minimální velikost zůstává trvale nefragmentovaná, zbytek nemá smysl defragmentovat (existuje jen krátkodobě).
Ano, na unixech je lepší nedefragmentovat, protože pro to zpravidla chybí nástroje. Tradičním způsobem defragu je pak vysypat disk na pásku (raději na 3 pásky), znovu vytvořit FS, a provést restore. Ve Windows naštěstí umíme defragmentaci na přimontovaném FS, a nyní i s nízkou prioritou I/O operací (neruší ostatní diskový provoz).
Poškozený FS opraví chkdsk. Pokud jména obsahují otazníky, jde o názvy obsahující Unicode znaky, a vy používáte aplikaci, která neumí Unicode (třeba Total Commander, psaný pro Windows 9x). Zkuste Windows Explorer, nebo jakýkoliv jiný nástroj, který nepsala prasata.
Proč je NTFS dobrý FS? Viz
http://www.root.cz/clanky/defragmentace-disku-v-linuxu/nazory/182761/
Re: Python?
celé vláknoNicmene se mylite, co se tyce tech otazniku. Ty vznily tak, ze jsem preinstaloval NT na novy disk. Pak jsem tam strcil stary disk, presypal vsechno do jednoho podadresare. Postupne jsem to pak probiral a kopiroval jinam. Zbytek jsem tam nechal valet, kdybych si vzpomnel, ze jeste neco potrebuji. Pak najednou zahadne vznikly ty otazniky ve jmene toho adresare, kde byla ta stara data. A kdyz jsem pak jednou chtel vymazat vsechno, co zbylo a nebylo potreba, zbyl mi ten adresar a v nem nekolik adresaru s podobne zmrsenymi nazvy a par souboru s podobnymi nazvy uvnitr. Nebylo cesty, jak to smazat, pomohl pak az format, pri dalsim upgrade na vetsi disk. Chkdsk nic nezmohl, ani kdyz byl. A Unicode tehdy snad vubec na Windows NT neexistovalo. To snad az tusim Windows XP. Nevim, kdo by tam ty Unicode znaky za mymi zady nacpal. Krome toho, kdyby to byl Unicode a neodpovidalo to specifikacim FS, Windows NT a co ja vim ceho, ocekaval bych od chdsk, ze to uvede do stavu odpovidajicimu specifikacim, i kdyby ty nazvy mel zmenit. Smazat to nejde, dalo se sice vlezt do tech divnych adresaru, ale ty soubory uz otevrit nesly. Tak co s tim?
Re: Python?
celé vláknoPopsaná situace je by design. Stačilo vzít Windows Explorer, a soubory byly v pohodě. Tedy ještě mohl zafungovat třeba antivir napsaný prasaty, ale to už by bylo asi fakt moc :). Dalším zjevným řešením by bylo přepnout code page ne-Unicode aplikací. Chkdsk s tím neměl co dělat, protože FS byl v pořádku.
Když to shrnu, problém byl v kombinaci zprasených aplikací a vaší neznalosti. Smozřejmě IT jako obor má maximum takových situací eliminovat, a uživatele tím nezatěžovat. Pokud ale pracujete s unixy, podobná překvapení jistě zažíváte každý druhý den.
Re: Python?
celé vláknoBTW, Windows jsou s timhle otravna. Staci zkopirovat z Linuxu pres Sambu soubor s nazvem s dvojteckou nebo otaznikem ci nekolika jinymi znaky a je to v haji, pricemz dvojtecka je ze vsech nejvic vypecena. Windows to nedokazi ani smazat. Staci, abych nekomu vytvoril pres sit soubor s takovym nazvem, ktery mu zaplacne cely disk a muze si jit koupit novy disk a vse preinstalovat.
Re: Python?
celé vláknohttp://msdn2.microsoft.com/en-us/library/aa363911(VS.85).aspx
Windows mají fakt mizerný FS. NTFS pravda žurnálový FS, který má nyní i ACID transakce (napříč soubory), má Access Control Listy, transparentní kompresi, Sparse files ("děravé" soubory), žurnál změn (zásadně urychluje backup), transparentní šifrování, Alternate data streams, quoty, Volume Shadow Copy, Single Instance Storage, RAID 1/5 a další. Ano, je to všechno v jednom FS, a je to na každém počítači s Windows řady NT. Ale na Linuxu máme lepší FS. Jeden umí quoty, další access control listy, pak jeden který umí oboje, dva co umí transparentní šifrování... ;)
Re: Python?
celé vláknoA nie je ten linux smiesny? Ani editor registrov nema!
Re: Python?
celé vláknoRe: Python?
celé vláknoRe: Python?
celé vláknoRe: Python?
celé vláknoRe: Python?
celé vláknoRe: Python?Re: Python?
celé vláknoRe: Python?Re: Python?
celé vláknoRe: Python?
celé vláknoa prosim ta, k comu je linuxu potrebny editor registrov, ked veskera konfiguracia sa zapisuje do textovych suborov v adresari /etc? staci ti na to nejaky jednoduchy textovy editor (napr. vim, ci ten v mc),
ale na Windowse rady 9x a WinNT je potrebny editor registrov, lebo v nich je konfiguraxcia v podobe niekolkych binarnych suborov a bez editora sa asi tazko nieco nastavi
Re: Python?
celé vláknoRe: Python?
celé vláknoporucha osobnosti
celé vláknoJe to bezvychodna situace.
Re: porucha osobnosti
celé vláknoRe: porucha osobnosti
celé vláknoKdyz mas taky poruchu osobnosti, tak co? Tobe to nevadi a nechtel by jsi byt normalni? Ja bych chtel, ale neda se s tim nic delat.
Re: porucha osobnosti
celé vláknoRe: porucha osobnosti
celé vláknoRe: porucha osobnosti
celé vláknodefragmetace x fragmentace
celé vláknoAčkoliv jsou už z návrhu moderní souborové systémy vůči defragmentaci velmi odolné- ano, proti defragmentaci jsou kolikrát velmi odolné, s tou fragmentací to tak strašné není :-}
fragmentace na linuxu je fakt problem
celé vláknoA pak ze linux nepotrebuje defragmentovat :-(
Tuhle defragmentaci jsem nezkousel, dam vedet vysledek az si na to udelam cas.
Re: fragmentace na linuxu je fakt problem
celé vláknoRe: fragmentace na linuxu je fakt problem
celé vláknoRe: fragmentace na linuxu je fakt problem
celé vláknoAle tahle utilitka by mohla pomoct... je dobře, že to pracuje nad úrovní FS, aspoň to nemůže nic moc zbodat. Zase ale nedefragmentuje adresáře a neumí přeskupit soubory jinak než náhodně - například knihovny openoffice budou na disku včudě možně...
P.S.: Nejde přispívat Konquerorem. To je nějakej hloupej pokus o bojkot KDE?
Re: fragmentace na linuxu je fakt problem
celé vláknoPresnejšia formulácia by bola "pri 400 GB disku vymeníte 40-80 GB za rýchlosť". V skutočnosti netreba až toľko, závisí aké veľké súbory sa budú pridávať a meniť. Napr.:
Film (iné väčšie sekvenčne čítané dáta) s cca .5 - 2 GB je nakopírovaný raz a aj keď je fragmentovaný na 5-20 častí, tak to moc žily netrhá, pretože čas strávený seekovaním disku je zanedbateľný oproti čítaniu (predpokladáme že sa číta po dosť veľkých blokoch).
Zato ak máme napr. 2 GB malých, často sa meniacich súborov (ku ktorým je pristupované osobitne v menších dávkach), je pre ne lepšie mať osobitnú partíciu, kde bude .5 - 1GB voľných, miesto aby boli premiešané s >=1 GB súbormi. Tak sa a) neobetuje 40 GB kvôli fragmentácii b) jednotlivé súbory budú korelovanejšie (malé blízko spolu, každý veľký viacmenej pokope).
Teoreticky by sa dalo "štatisticky naučiť" alokátor, čo kam hádzať pre ktorý proces, ale skončilo by to najskôr tak komplikované ako SELinux.
Re: fragmentace na linuxu je fakt problem
celé vláknoNa tlacitko odeslat se musi "dvojkliknout". Proc to nefunguje nevim. Root.cz by s tim mel neco udelat.
Re: fragmentace na linuxu je fakt problem
celé vlákno*klik*
Re: fragmentace na linuxu je fakt problem
celé vláknoAno, je. Ale stačí pro roota zakázat JavaScript.
Re: fragmentace na linuxu je fakt problem
celé vláknoU souboru, ktery byl pouze otevren pro zapis ale zadny zapis nebezel. Misto dat same 000000000
PS: nemusite me vysvetlovat proc, vim to proc se to stalo.
Re: fragmentace na linuxu je fakt problem
celé vláknoRe: fragmentace na linuxu je fakt problem
celé vláknoTento problém sa dá jednak riešiť cez transakčné FS API, ktoré je "z bežných FS" implementované v Reiser4 a NTFS (tuším ešte ZFS?). Teoreticky by niečo podobné bolo jednoducho implementovať do log-structured FS (a la JFFS2), ale tie nie sú vhodné pre bežné (seekovacie) disky.
Typicky sa transakcie na FS riešia copy-on-write s tým, že po uzavrení "user" transakcie (z aplikácie) nasleduje FS-metadata transakcia, ktorá "poprehadzuje pointre" zo starých dát na nové dáta (typicky veľmi rýchle).
Transakčné FS API je fajn...ale prišlo tak neskoro, že to už prakticky skoro nikto nevyužije - pr. databázy si riešia transakcie vo vlastnej réžii. Kto chce, vyrobí si "poor man's transaction" "simuláciou" copy-on-write - všetky súbory zapíšem s novými menami, zmažem staré a premenujem novo zapísané (neni to samozrejme atomické, ale pre bežné desktop aplikácie dostačujúce, plus niektoré aplikácie to fakt tak robia).
Re: fragmentace na linuxu je fakt problem
celé vláknoJak moc je dnes (de)fragmentácia dôležitá?
celé vláknoDruhá vec: s výnimkou "tlačenia" súboru max. rýchlosťou (napr. kopírovanie, čo nie je moc časté), medzi dvoma prístupmi k súboru od jedného procesu/vlákna stihne disk zaseekovať niekoľkokrát kvôli requestom od ostatných procesov, tam už nejaká fragmentácia extrémny rozdiel nehrá (ak neni 4gigový súbor rozsypaný jak čaj po celom disku).
Nakoniec, pri čítaní mnoho menších súborov (<=20k) je skoro absolútne jedno jak moc sú fragmentované (pr. portage), tam skôr spraví rozdiel
-jak moc blízko sú (prefetch sektorov/blokov do cache)
-či sa po readdir() najprv zotriedia podľa mena (typicky tak nebudú zotriedené podľa inodov/umiestnenia na disku, tiež závisí jak sa vytvárali)
Nejde ani tak moc o fragmentáciu ako skôr o to, že by alokátor potreboval nejaké hinty, jak sa k súborom bude v budúcnosti pristupovať, aby ich nejak "inteligentne" zoradil. Reiser4 a XFS (myslím že aj reiserfs) odkladajú preto alokáciu do posledného možného okamžiku. Ext3 má zase špeciálny atribút na adresáre, ktorým sa mu dá povedať, že má súbory v ňom naopak rozptýliť než držať dokopy (typicky pre home, ale dá sa to nastaviť explicitne aj pre iné adresáre) - zmysel toho je v tom, aby bolo dosť miesta v blízkosti jednotlivých podadresárov (home adresáre rozličných užívateľov nie sú typicky korelované).
Trochu podobnú vec ext3-ovskému rozptylu robí XFS filestreams alokátor pre súbory ak sa očakávajú veľké súbory (nahrávané streamy), snaží sa každý hodiť do osobitnej alokačnej skupiny; nastavuje sa to podobne cez chattr. Ten alokátor sa zase ale nehodí na "bežné použitie FS", hlavne kvôli predlžovaniu (xfs má ďalšie dva alokátory a naviac sa snaží rozhodiť nové adresáre do iných alokačných skupín, z podobného dôvodu "aby mal dosť miesta okolo").
Záver: rozličné metódy jak dostať z FS maximum existujú, ale ich použitie neni úplne triviálne (alokátor ani I/O scheduler nemajú krištáľovú guľu ;-)) Nakoniec najviac spraví cache - radšej dokúpiť väčší disk aby nebol plnší než dajme tomu 80% (menšia pravdepodobnosť fragmentácie, alokátor lepšie vyberá bloky), RAM (viac cache), rozsypané a často sa meniace veci hodiť do tmpfs.
Jak defragmentovat FAT
celé vláknoRe: Jak defragmentovat FAT
celé vláknoRe: Jak defragmentovat FAT
celé vláknoRe: Jak defragmentovat FAT
celé vláknoRe: Jak defragmentovat FAT
celé vláknoRe: Jak defragmentovat FAT
celé vláknoRe: Jak defragmentovat FAT
celé vláknoRe: Jak defragmentovat FAT
celé vláknoRe: Jak defragmentovat FAT
celé vláknoRe: Jak defragmentovat FAT
celé vláknoRe: Jak defragmentovat FATRe: Jak defragmentovat FAT
celé vláknoDalsi duvod, proc jsem na Linuxu.No, já bych možná připomenul, že na Windows už se nějaký ten pátek dá používat i novější FS než FAT.
Ale jinak Váš příspěvek je v kontextu ostatních, které se hádají o tom, že na Linuxu není kloudný defragmenter žádný (kromě "kopírovacího" přístupu), docela vtipný.
Re: Jak defragmentovat FATRe: Jak defragmentovat FAT
celé vlákno2) Reiser4 se ani po 2 letech nezfragmentoval tak, abych to musel resit. 0,5% fragmentace nebudu resit
Re: Jak defragmentovat FATRe: Jak defragmentovat FAT
celé vlákno2) Ale jak tu už dost lidí psalo, záleží na způsobu využití FS a na jeho zaplnění. Jak to je tedy u Vás?
Re: Jak defragmentovat FATRe: Jak defragmentovat FAT
celé vláknoFS je reiser4, system Gentoo.
Re: Jak defragmentovat FATRe: Jak defragmentovat FAT
celé vláknoRe: Jak defragmentovat FAT
celé vláknoPodle me nejlepsi defrag je koupit si jeste jeden disk a vsechno na nej zkopirovat a pak to prekopirovat zpatky. Pravda, neni to nejlevnejsi, ale stoprocentni a od jiste valikosti defragmentace i nejrychlejsi. Navic to ma vedlejsi efekt - zalohu.
Re: Jak defragmentovat FAT
celé vláknoTakovy defrag by ale slo asi jen s obtizemi pouzit na primountovanem oddilu.Proč? Programy snad nepřistupují ke konkrétním sektorům, ale drží si nějaké file descriptory a to že tomu "něco" bude přehazovat soubory pod rukama vůbec nemusí vidět. (Jo, tak bude to složitější na implementaci než kopírování, ale nevidím důvod, proč by to nemělo jít.)
Podle me nejlepsi defrag je koupit si jeste jeden disk a vsechno na nej zkopirovat a pak to prekopirovat zpatky.Jistě. Taky nejlevnější. A hlavně to budu určitě dělat na běžícím systému.
Re: Jak defragmentovat FAT
celé vláknoProč? Programy snad nepřistupují ke konkrétním sektorům, ale drží si nějaké file descriptory a to že tomu "něco" bude přehazovat soubory pod rukama vůbec nemusí vidět. (Jo, tak bude to složitější na implementaci než kopírování, ale nevidím důvod, proč by to nemělo jít.)
Ano, existujú online repackery (defrag), napr. pre XFS, plánované (tj. neviem v akom stave je implementácia) sú pre Ext4 a Reiser4.
Ono najlepší "defrag", čo sa týka vplyvu na výkon je aj tak zobrať súbory, ku ktorým jedna aplikácia/proces pristupuje a prekopírovať ich (typický alokátor spraví to, že sa ich bude snažiť naalokovať blízko seba, čím spôsobí menšie seekovanie). Naopak "obyčajný defrag" nemá ani šajnu v súvislostiach ktorý fajl sa bude ako používať, takže ich síce môže defragmentovať, ale zároveň rozhádzať po disku (a bude to seekovať viac).
BTW defrag mal skôr zmysel v DOSe, kde sa čítal jeden fajl v jednom momente (dnes je to tak skôr kvôli dobrému pocitu modulo extrémne prípady, keby sme rozsypali fajly po disku jak čaj). Moderné FS alokujú fajly nie po jednotlivých blokoch, ale po extentoch (premenlivo dlhý súvislý pás blokov), tu delayed allocation dosť pomáha proti fragmentácii preventívne.
Pr. XFS má niekoľko B+ stromov, podľa jedného hľadá voľný extent najbližšej vhodnej veľkosti, podľa druhého hľadá extent/blok v blízkosti predchádzajúceho, tie B+ stromy sú tuším per AG (allocation group, ale už si to nastropro nepamätám).
Počet fragmentov na MB apod. je absolútne nič nehovoriaca metrika (nehovorí nič o čase seeku/"vzdialenosti" medzi fragmentami, nezaoberá sa o koreláciami medzi čítaním súborov atď).
Re: Jak defragmentovat FAT
celé vláknoTěžko budete hledat extent nejbližší vhodné velikosti, když netušíte, jak bude soubor velký. A přiznejme si, zpravidla to nevíte. Aplikace vytvoří prázdný soubor, a mnoho FS už v tu chvíli alokuje (NTFS udělá jen záznam v MFT). Zapíšete pár byte nebo kB, postupně připisujete... Jestli víte o alokátoru s rozostřeným viděním času, rád si o něm přečtu. Zatím jsem četl jen o výtazích s rozostřeným viděním času ve Stopaři ;)
Re: Jak defragmentovat FAT
celé vláknoJe k tomu nejaký link jak presne to robia? (robí to nejaký explicitný proces, sám NTFS driver, meria sa počet prístupov, počet čítaní, počet čítaných blokov...?) Inak mi neni jasné, načo sa pozerá na súbory použité pri štarte, tie budú spravidla úplne iné než tie, ktoré sa budú používač pri štarte (až na psychologický efekt zrýchlenia štartu o trocha).
XFS má stratégiu podľa alokátoru, inak sa bude správať u defaultného a inak u filestreams alokátoru. Je pravda, že uhádnuť dopredu veľkosť súboru obecne nejde, ale s delayed allocation sa dajú aspoň naalokovať maximálne dlhé extenty až sa mine pamäť (ďalšie sa budú hľadať typicky v rovnakej AG, v závislosti od alokátoru a voľného miesta). Allocation groups (AG) sú volené tak, aby v rámci nich bol seek krátky (po začatom zápise sa až po zaplnení "preskočí" do ďalšej AG).
BTW vytvoriť záznam o existencii súboru je možné okamžite (s alokáciou miesta sa dá počkať až sa rozbehne zápis, jak to scheduluje XFS).
Re: Jak defragmentovat FAT
celé vláknoRe: Jak defragmentovat FAT
celé vláknoČekat s alokací "až se mine pamäť" (předpokládám až se naplní paměť) je špatně. Vede to k hromadě dirty pages, a když pak z nějakého důvodu paměť potřebujete, musíte nejprve zuřivě hrabat po disku (a ten kdo tu paměť potřeboval čeká). Navíc v případě problému typu výpadku proudu přijdete o velkou spoustu dat, což je nepřijatelné. OS se naopak má snažit, aby data dostal na disk bez zbytečného prodlení. V případě serverových aplikací by pak mělo být zaručeno, že když se navrátí synchronní volání, případný výpadek napájení nezpůsobí ztrátu dat (aneb proč jsou důležité baterií zálohované řadiče).
NTFS drží metadata souboru v MFT, a vlastní data buď v MTF (pokud je jich málo), nebo zvlášť. Protože alokační blok s metadaty stejně musíte modifikovat při změně dat souboru, je původně-malý soubor (v řádu kB - musel bych se podívat) přímo v MFT spolu s metadaty. Když se zvětší, bude se alokovat mimo MFT (včetně dat zapsaných původně do MFT), záznam v MTF se zaktualizuje, a tam uložená data souboru zneplatní. Tím je zajištěno, že malé soubory jsou pohromadě se svými metadaty, což je rychlé. V běžném scénáři to nevede ke ztrátě výkonu.
Re: Jak defragmentovat FAT
celé vláknoSamozrejme delayed allocation je blbá pri výpadku prúdu apod. Samozrejme je stále možné otvárať súbory alebo mountiť FS sychrónne (čo zase brzdí výkon). XFS má naviac "writebarrier", čo umožňuje dokonca zaistiť, že dáta nezostali len v HDD cache a že sa dostali "na platne". Nepoznám iný "bežný" FS s touto featurou.
XFS a Reiser3,4 robia tiež tail-packing (tj. držia malé adresáre/súbory hneď pri metadátach, aj keď u XFS neviem či to robí aj pre súbory). Tail-packing je dobrý pre zmenšovanie fragmentácie a ak read o hodne prevyšuje write/append (kvôli výkonu).
Inak mať MFT na začiatku partície neni moc dobrý nápad, pretože sa potom musí moc seekovať medzi čítaním dát a metadát.
Re: Jak defragmentovat FAT
celé vláknoVe Windows můžete použít CreateFile s flagem FILE_FLAG_WRITE_THROUGH.
MFT by hlavně neměla být příliš fragmentovaná, což NTFS celkem dobře zajišťuje.
Re: Jak defragmentovat FAT
celé vláknoRe: Jak defragmentovat FAT
celé vláknohttp://support.microsoft.com/kb/227463
http://support.microsoft.com/kb/174619
http://www.amosdec.com/pdf/DIVERS/DSKvsW2000defrager.pdf
Re: Jak defragmentovat FAT
celé vláknoNe, nemám takový pocit. A to mimo jiné proto, že vím, jak vypadá MS API pro defragmentaci (které používá mimo jiné defrag vestavěný ve Windows).
http://msdn2.microsoft.com/en-us/library/aa363911(VS.85).aspx
Re: Jak defragmentovat FAT
celé vláknoRe: Jak defragmentovat FAT
celé vláknoRe: Jak defragmentovat FAT
celé vláknoRe: Jak defragmentovat FAT
celé vláknohttp://support.microsoft.com/kb/227463
Re: Jak defragmentovat FAT
celé vláknoeste poznamocka
celé vláknonebolo by zle dorobit do (asi) rsync moznost, nech sa pokusi ulozit s co najmensou fragmentaciou, a tiez nastavit zavyslos od inych files, aby ich umiestnoval blizko seba
Re: este poznamocka
celé vláknoblek
celé vláknozávislosti
celé vláknolsof
filefrag
/usr/bin/find
rm
Co skutecne defragmentovat?
celé vláknoRe: Co skutecne defragmentovat?
celé vláknoRe: Co skutecne defragmentovat?
celé vláknoNemělo by k tomu docházet
celé vláknoDoporučoval bych spíše zajistit kvalitní dohled nad servery a předcházet problémům než je řešit když nastanou.
nedefragmentuji
celé vláknoDoby kdy kazda I/O operace znamenala hybani s nejakou hmotnou veci a pri praci s s diskem se vedelo, se kterym valcem, hlavou a sektorem se pracuje, tam mela defragmentace smysl.
Dnes, kdyz uz nekteri pomalu ani nevedi, jak vypadala disketa a kdy pomalu kazdy disk ma interni cache, elevatorovou optimalizaci a hlavne naprosto nejasnou fyzickou geometrii, o diskovych polich s RAIDem ani nemluve, nema defragmentace vubec zadny smysl.
Re: nedefragmentuji
celé vláknoRe: nedefragmentuji
celé vláknoRe: nedefragmentuji
celé vláknoRe: nedefragmentuji
celé vláknoZávislost na defragmentaci - flame nebo pravda?
celé vláknoRe: Závislost na defragmentaci - flame nebo pravda?
celé vláknoRe: Závislost na defragmentaci - flame nebo pravda?
celé vláknoNarazka na bittorrent
celé vláknoJinou moznosti jsou nejmenovani bittorrent klienti, kteri pouzivaji posixovou funkci:
#define _XOPEN_SOURCE 600
#include <stdlib.h>
int posix_fallocate(int fd, off_t offset, off_t len);
Chytrejsi OS/FS jim vyhradi misto.
Podobný návod
celé vláknoOdkaz na podoný článek defragmentace počítače

