Su un sistema moderno, usando la compressione del disco mi darà migliori performance generali?

Sembra che la CPU aumenta abbia superato la velocità del disco per un po '. Supponendo che un desktop o un computer porttile con moderna CPU dual-core Intel / AMD e un unico disco SATA medio, farà la compressione su gran parte di tutto il disco per dare migliori performance generali? Fondamentalmente la ridotta width di banda del disco è più che compensare l'aumento del carico CPU? Sono sicuro che la risposta reale è "dipende da quello che stai facendo". Pongendo questa domanda, spero di avere qualcuno che ha fatto questo pipe e dare alcuni esempi o insidie.

  • Per una piccola networking domestica, c'è qualche punto per eseguire Squid?
  • compressione del text in postfix
  • Applicazione IIS7 ASP.NET - 2 applicazioni identiche in 2 pool identici, 1 è responsabile e 1 non è
  • Server di avvio estremamente veloce
  • Il mio server linux richiede più di un'ora per avviare. Suggerimenti?
  • La generazione di molte pagine sporche è bloccando le scritture sincrone
  • 9 Solutions collect form web for “Su un sistema moderno, usando la compressione del disco mi darà migliori performance generali?”

    Sì, la compressione del disco può fornire performance migliori in circostanze particolari:

    • La tua applicazione è legata al passaggio del disco: le moderne CPU e gli algoritmi di compressione possono funzionare a width di banda molto più elevata dei dischi moderni in lunghi trasferimenti. Qualsiasi riduzione a tutti la quantità di dati che si spostano da o da piatti di disco è una vittoria in questa circostanza
    • Ci vogliono less tempo per (de) comprimere i dati che stanno andando a piatti di dischi rispetto alla differenza nei tempi di trasferimento, e avete loops di CPU per risparmiare

    C'è un motivo per cui entrambi i templates ZFS e Btrfs, sia i recenti progetti green-field, includono disposizioni per la compressione.

    Nello spazio HPC, quando un'applicazione sta controllando da memory a disco, le CPU spesso non stanno facendo nulla di utile. Questa volta è sostanzialmente puro. Qualsiasi utilizzo delle CPU per ridurre questa volta è una vittoria.

    La compressione del disco non ti darà mai migliori performance.

    Può darti quasi nessuna penalità a causa di CPU moderne veloci, ma questa è una cosa completamente diversa.

    Si suppone che wherere trasferire less dati da / a disco può migliorare le performance; ma i grandi trasferimenti di dati non sono quasi mai un collo di bottiglia I / O: i colli di bottiglia veri sono la ricerca di tempo e latenza. I dischi rigidi moderni sono davvero veloci sui trasferimenti dati sostenuti con grandi file, ciò che li rallenta sono piccoli trasferimenti da tutto il disco.

    Alcuni scenari:

    • File multimediali. Questi sono di solito già compressi da soli (JPEG, MPEG, MP3), quindi la compressione a livello di filesystem non sta per aiutare a tutti; peggiorerà invece le cose, perché le risorse della CPU sono già necessarie per codificarle / decodificare.
    • Banche dati. Questi vengono solitamente letti da / scritti in piccoli scoppi casuali, in modo da comprimerli non solo beneficeranno, ma anche degraderanno le performance, poiché il DBMS non può identificare correttamente where su disco i dati fisici necessari per accedere sono immagazzinato.
    • File di text. Questo è di solito abbastanza grande, ma il sistema operativo deve affrontare piccoli frammenti di dati su di esso e deve farlo molto in modo preciso ("Leggere 4K all'indirizzo fisico X"); compressione di solito non è ansible, ma anche se fosse, sarebbe un spreco di tempo e di risorse: avrebbe fornito una compressione quasi zero, a causa della natura "completa dei dati casuali" di questo file.

    Ci sono situazioni specifiche che lo fanno già a livello di applicazione, come la compressione video – un sistema che non è stato in grado di leggere velocemente il video di qualità HD crudo da un dsk può invece leggere le informazioni compresse e ampliarle usando la memory e la potenza della CPU . Non esiste alcuna ragione, questo non potrebbe essere il caso anche per altre situazioni specifiche, ma questo può essere gestito al meglio a livello di applicazione in modo che i methods di compressione utilizzati siano ottimizzati al loro scopo.

    Tieni presente che la sovracompressione di performance della decompressione è utile se l'integer throughput aumenta, quindi l'idea non deve essere eliminata dalla mano – non credo che siamo pronti per una prestazione generale che aumenta la compressione ma è teoricamente ansible per scambiare una risorsa che ha un eccesso di (CPU e memory) per una spinta altrove (dati totali letto dall'hard-drive)

    Hai risposto alla tua domanda! dipende in effetti la risposta.

    La migliore generalizzazione che posso fare è:

    Se si dispone di un'applicazione di database che è il disco rigido , allora sì! la prestazione è migliore.

    Non credo che questo sia il caso per la maggior parte delle attività che farai su un desktop / computer porttile.

    Nel mio dominio (SQL Server) so che i database di segnalazione in carichi pesanti possono get performance migliori se viene utilizzata la compressione. So che lo stesso vale per mysql.

    Microsoft ha un white paper sulle loro caratteristiche di compressione in SQL Server 2008. Non esattamente la lettura leggera a less che non sia un DBA, ma qui è un grafico che support la mia generalizzazione:

    alt text

    Le velocità della CPU sono sempre state più veloci delle velocità del disco. IMHO, la compressione sta per aumentare le spese generali e quindi ridurre le performance.

    Stavo leggendo somthing simili a questo ieri per quanto riguarda OSX e la sua compressione del filesystem – Fondamentalmente la risposta si gira intorno a ciò che vuoi comprimere – in questo esempio sta parlando dei dati "FAT"; le strutture di file, le properties;, i metadati ecc che, se memorizzati insieme, possono essere compressi per risparmiare spazio e essere letti nella CPU più veloce di cercare la testa in tutto il luogo per trovare i dati per each file …

    Comunque, vale la pena leggere se stai pensando a queste cose :-p

    Ma la compressione non è solo sul salvataggio dello spazio su disco. È anche un esempio classico di loops di CPU commerciali per una diminuzione della latenza di I / O e della width di banda. Negli ultimi decenni, le performance della CPU sono migliorate (e le risorse di calcolo sono più abbondanti – più su questo più tardi) ad un tasso molto più rapido rispetto alla performance del disco è aumentato. I tempi di ricerca del disco rigido moderno e i ritardi di rotazione sono ancora misurati in millisecondi. In un millisecondo, una CPU a 2 GHz attraversa due milioni di loops. E poi, naturalmente, c'è ancora il tempo di trasferimento dei dati da considerare.

    Certo, diversi livelli di memorizzazione in tutto il sistema operativo e hardware lavorano forti per hide questi ritardi. Ma questi bit devono venire fuori dal disco ad un certo punto per riempire quelle cache. La compressione significa che più bit devono essere trasferiti. Dato l'affaticamento quasi comico delle risorse della CPU su un moderno Mac multi-core in uso normale, il tempo totale necessario per trasferire un carico utile compresso dal disco e utilizzare la CPU per decomprimere il suo contenuto in memory sarà ancora di solito molto less del tempo ci vorrebbe per trasferire i dati in forma non compressa.

    Questo spiega i potenziali vantaggi derivanti dal trasferimento di dati minori, ma l'utilizzo di attributi estesi per archiviare i contenuti dei file può effettivamente rendere le cose più veloci. Tutto ha a che fare con la localizzazione dei dati.

    Se c'è una cosa che rallenta un disco rigido più che trasferire una grande quantità di dati, sta muovendo le teste da una parte del disco all'altro. Ogni mossa significa che la testa deve iniziare a muoversi, quindi arrestarsi, assicurarsi che sia posizionata correttamente sopra la posizione desiderata, quindi attendere che il disco di filatura metta i bit desiderati sotto di esso. Queste sono tutte parti reali, fisiche e in movimento, ed è incredibile che fanno la loro danza più rapidamente ed efficacemente come fanno, ma la fisica ha i suoi limiti. Questi movimenti sono i veri killer di performance per la memorizzazione in rotazione come i dischi rigidi.

    Il formato del volume HFS + memorizza tutte le informazioni sui file-metadati-in due posizioni primarie sul disco: il file di catalogo, che memorizza le date del file, le autorizzazioni, la properties; e molte altre cose e il file attributi che memorizza " ".

    Gli attributi estesi in HFS + vengono implementati come named forks nel file Attributes. Ma a differenza delle forze di risorse, che possono essere molto grandi (fino alla dimensione massima del file supportta dal file system), gli attributi estesi in HFS + vengono memorizzati "inline" nel file attributi. In pratica, questo significa un limite di circa 128 byte per attributo. Ma significa anche che la testa del disco non ha bisogno di fare un viaggio in un'altra parte del disco per get i dati reali.

    Come si può immaginare, i blocchi di disco che compongono i file di catalogo e di attributi sono frequentemente accessibili, e quindi più probabilità che la maggior parte di essere in una cache da qualche parte. Tutto questo compie per rendere l'archiviazione completa di un file, inclusi i suoi metadati nei suoi dati, all'interno dei file di catalogo e attributi strutturati in B-tree, una vincita generale delle performance. Anche un payload di otto byte che illumina a 25 byte non è una preoccupazione, a patto che sia ancora inferiore alla dimensione del block di allocazione per l'archiviazione normale di dati e finché tutto si inserisce all'interno di un nodo B-tree nel file attributi che il sistema operativo deve in each caso leggere integralmente.

    Ci sono altri contributi significativi per l'ingombro ridotto di Snow Leopard (ad esempio, la rimozione di localizzazioni inutili e file "designable.nib") ma la compressione HFS + è di gran lunga il più tecnicamente interessante.

    Da: http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars/3

    La compressione di Microsoft Disk è brutta OLD. È difficilmente paragonabile nei rapporti con il metodo ARJ degli anni '80. Ma anche la compressione Microsoft può fornire performance migliori su hard disk molto lenti (laptop). Soprattutto se c'è abbastanza RAM per Write-caching e impedire scrive eccessive.

    Il process di scrittura è un punto debole di qualsiasi metodo di compressione abilitato ad accesso random.

    Quindi, se si desidera un'unità compressa, è meglio spostarsi in qualche tipo di Linux.

    La compressione del disco è anche molto adatta per le unità RAM, non c'è bisogno di dirvi perché.

    Pieno di dubbi. La compressione e la decompressione coinvolgono più che il disco e la CPU; in particolare ci sarà un sacco di trasferimento di dati da e verso la memory (oltre al sovraccarico standard di trasferimento senza compressione) che veramente danneggerà in termini di errori di pagina.

    In breve, no, probabilmente non potrai get performance.

    Mentre la compressione migliorerà le performance della tua memory, significa degradare notevolmente la velocità del processre. Probabilmente arriva a che tipo di file si sta andando a decomprimere. Se hai solo a che fare con parola, excel e altri tipi di file di base allora andate avanti e comprimerli. Se i singoli file sono più grossi, tu stai sacrificando più del tuo tempo.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.