Condividi RAM sulla rete


49

Il mio collega sta usando un'applicazione che consuma molta memoria, il che rende il sistema troppo lento. È possibile condividere la memoria con altri PC su Internet?

Il sistema ha 8 GB di RAM e l'applicazione consuma più di 6 GB.


5
Eseguirlo su un server ad alta potenza tramite Desktop remoto, VNC o X11 ??
WGroleau,

3
Stai meglio usando grandi unità di archiviazione (HDD o SSD) come cache, come già indicato nelle risposte.
Firebug,


79
Potresti avere più fortuna a scaricare più RAM ...
Mehrdad,

4
Le versioni moderne di Windows consentono di utilizzare chiavette USB o schede SD per migliorare le prestazioni. In realtà non significa che il dispositivo viene utilizzato come RAM, ma qualcosa che si comporta tra RAM e disco rigido basato su piatto.
Salman A

Risposte:


162

Ho considerato solo un'applicazione standalone che gira su una macchina "standard" senza la possibilità di installarla altrove o utilizzare hardware o software specializzato. Altre risposte (correttamente) riguardano la migrazione del software o l'hardware dedicato per l'attività.

Qualsiasi modo di "condividere la RAM" tramite una rete sarà soggetto alle limitazioni di quel mezzo di rete. Poiché anche Gigabit Ethernet è limitato a circa 100 MB / s (megabyte), ciò significa che anche la velocità della "RAM" sarà limitata.

100 MB / s è una piccola frazione della velocità della RAM che è effettivamente nel tuo sistema. Il tuo programma sarà dolorosamente lento e ti sembrerà di essere in esecuzione su un computer dai primi anni '90

I dischi rigidi moderni sono, per la lettura e la scrittura sequenziali, leggermente più veloci di così. Gli SSD sono molte volte più veloci.

Ciò sta ignorando i problemi di latenza che rallenteranno il tuo programma di un ordine di grandezza.

A causa della lentezza e di altri problemi tecnici coinvolti, questo non è un problema che qualcuno abbia mai considerato degno di essere tentato di risolvere per i sistemi "domestici" o "d'ufficio". È più economico ed efficace acquistare più RAM se necessario.

Basta acquistare più RAM o persino un SSD per un file di paging. Non c'è altro modo per farlo che non richieda una folle quantità di lavoro o hardware per pochi benefici.


46
Lo scambio / il paging su Ethernet Gigabit può avere una latenza inferiore rispetto a un file di paging su un disco magnetico locale . ad es. latenza del disco di 10 ms rispetto a un tempo di ping inferiore a 1 ms per Ethernet locale. Se il file server che contiene il file di paging (o il dispositivo iSCSI a cui stai scambiando) lo mantiene caldo nella sua RAM, potresti vincere. IDK se Windows supporta il paging su un file di rete. (Sono abbastanza sicuro che lo faccia Linux, ma questa è una domanda di Windows). Oh, ho appena visto che la domanda dice "su Internet", quindi nvm.
Peter Cordes,

2
@MarkHu Dato che questo è stato chiesto a Super User, non credo che il richiedente abbia alcun controllo sul codice del software in uso.
oldmud0,

2
@PeterCordes Quello che descrivi è ancora una perdita rispetto all'acquisto di più RAM o SSD. E ancor più certamente in Windows. ;)
jpmc26

11
@TomTom per uso domestico e "normale" gigabit è ancora praticamente quello che ottieni sul tuo computer desktop. Solo perché 25G e 100G sono comuni (o almeno disponibili) per l'infrastruttura backbone non significa che è probabile che tu lo veda sul desktop. Non riesco nemmeno a trovare una scheda desktop 10GigE presso alcun fornitore locale a un costo ragionevole, figuriamoci un 25GigE. Le schede 10GigE sono circa 4 volte il costo di una memory stick da 8 GB qui. So quale prenderei in considerazione un aggiornamento ragionevole.
Mokubai

9
"sento come se fosse in esecuzione su un computer dei primi anni '90" - strano, i computer degli anni '90 si sentivano molto più velocemente di quanto non facciano oggi i computer.
Jeremy Visser,

73

Solo per completezza: InfiniBand consente l'accesso diretto alla memoria di altre macchine.

Tuttavia, richiede:

  • Un interruttore InfiniBand
  • Un InfiniBand aggiunge una carta in ogni macchina
  • L'applicazione deve essere programmata appositamente per utilizzare questo

NON funziona su una rete esistente, richiede un'infrastruttura completamente indipendente per tutti i nodi collegati. Inoltre NON funziona su Internet


53
È anche molto più costoso di un altro 8 GB circa di RAM :-).
sleske,

40
Oh, solo per un ordine di grandezza o giù di lì;)
Gerald Schneider,

7
Non hai bisogno di infiniband, anche RoCE è possibile. Tuttavia, ciò richiede schede NIC che supportano RDMA e probabilmente un nuovo switch per supportare le schede NIC e un'applicazione programmata per utilizzare RDMA.
alex.forencich,

7
+1 perché è un'ottima e corretta ma - per questa situazione - risposta totalmente inutile :-)
daniel.neumann

1
Sì, a meno che non si ottengano 25 G o 100 G che sono più costosi. RDMA non risolve il problema di latenza.
TomTom,

19
Is there any alternative solution?

Ciò dipende fortemente dalla natura dei dati.

È possibile eseguire 2 server mysql diversi su 2 macchine diverse.

Quindi dividere i dati in 1/2 e scrivere il programma per sapere automaticamente a quale server andare.

Naturalmente questo può essere ridimensionato su qualsiasi numero di server se li hai disponibili.


Avevo considerato di menzionare che in genere il modo in cui "condividiamo la memoria" è spostando attivamente l'applicazione su un altro computer e quindi lavorando in remoto con qualsiasi metodo disponibile. È sicuramente un'alternativa all'acquisto di più memoria, soprattutto se è già disponibile un'altra macchina. +1
Mokubai

1
Come un desktop remoto?
Innov

4
Hai 2 computer con sistema operativo separato e ognuno ha una copia di mysql in esecuzione. Quindi il computer n. 1 potrebbe essere 192.168.0.1 e il computer n. 2 192.168.0.2 (o qualsiasi altra cosa). Sul PC principale ora è possibile accedere a entrambi questi IP per recuperare i dati. Mysql o la sua sostituzione gratuita mariadb offre librerie come libmysql da aggiungere al tuo programma in modo che abbia accesso nativo a mysql. Questo non è un desktop remoto, la sua relazione client-server e / o client e server multipli.
cybernard,

15

Sì, è abbastanza facile da fare (e l'ho fatto, per i sistemi diskless che necessitano di scambio), usando il protocollo Network Block Device.

Installa nbd-serversul computer server e configuralo per creare automaticamente i file per host.

Assicurati che i tuoi computer client abbiano NBD compilato nei loro kernel, quindi configurali per passare a un dispositivo montato su NBD. Il nbd-clientpacchetto può aiutare.

Scusate se quanto sopra è un po 'vago - Le macchine su cui ho fatto questo non sono raggiungibili da qui; Potrei essere in grado di compilare i dettagli quando ho accesso ad essi.

C'è un'implementazione alternativa del server NBD chiamata nbdkit; Non ne so nulla.


Ho appena notato che la domanda ha un tag Windows. Non so nulla di Windows - scusa.
Toby Speight,

8
+1, lo scambio su GigE su una LAN dovrebbe avere una latenza inferiore rispetto a un hard disk magnetico locale, se il file server che stai scambiando mantiene il file di swap nella sua RAM. Tempi di ricerca HD di ~ 10 ms rispetto a tempi di ping LAN di ~ 0,25 ms. Non ho idea se Windows possa fare qualcosa di simile, ad esempio con un file di paging su Windows File Sharing (SMB) o qualsiasi altro protocollo, ma forse iSCSI potrebbe funzionare. Il PO menziona "su Internet"; non sarebbe una buona idea. A meno che il tempo di ping non sia inferiore alla latenza di accesso casuale HD, non è una vittoria.
Peter Cordes,

Non vedo come questo si qualifichi come "RAM aggiuntiva". Non è diverso dal scaricare alcuni dati in un file su un disco locale, no?
ivan_pozdeev,

Per un client Wndows, è possibile condividere un dispositivo a blocchi in Linux tramite Samba e montarlo come disco in Windows con ImDisk (la dimensione dovrà essere specificata manualmente).
ivan_pozdeev,

l'ho fatto anche in passato su Linux, sebbene abbia usato la mia implementazione client-server nbd, ha funzionato bene per usare il dispositivo a blocchi nbd come partizione di swap.
Hanshenrik,

9

Dati i piccoli dettagli non importanti "Windows 10, la workstation ha una RAM da 8 G B" , c'è davvero una sola risposta sana: acquistare più RAM ed eseguire meno schifezze.

L'acquisto di un SSD e l'inserimento del file di paging sarebbe la migliore opzione successiva, ma davvero ... acquista più RAM.

Servire il file di paging ("condividi memoria") sulla rete è ovviamente possibile, ma è una pessima idea. Sebbene sia vero che esistono casi limite in cui il tempo di accesso sulla rete sarà migliore dell'accesso a un'unità locale, questo è irrilevante per il tuo caso di utilizzo, perché è necessario allo stesso tempo tempo di accesso basso costante e larghezza di banda elevata. Ricorda, non stai anticipando errori di una o due pagine, stai costantemente scambiando. A meno che tu non sia disposto a pagare un paio di migliaia, non puoi assolutamente avvicinarti all'acquisto di RAM o SSD.

8 GB non sono quasi sufficienti per eseguire contemporaneamente Windows 10 e un'applicazione affamata di memoria. È appena sufficiente per eseguire Word, Excel e Outlook contemporaneamente. Questa è esattamente la tipica "totale installazione di cazzate" completamente inutilizzabile con cui milioni di persone devono convivere ogni giorno sul proprio laptop di lavoro. Investi 100-200 valuta in un altro modulo di memoria e ammortizza il suo costo in una settimana (le cose che richiedevano minuti ora impiegano pochi secondi e il tempo è denaro - sfortunatamente spesso è difficile entrare nella testa del tuo contatore di fagioli locale).

In alternativa, se possiedi la macchina, puoi usare NTLite per ridurre la merda di Windows 10, riducendo il suo ingombro di memoria. Oppure, potresti semplicemente disattivare l'80% dei servizi per lo più inutili. Sembra incredibile, ma è possibile eseguire una versione recente di Windows con meno di 2 GB di RAM utilizzati.

Ma davvero, basta acquistare RAM ... è molto più veloce e più facile che passare ore del tuo prezioso tempo a ridurre la merda di Windows.


2
Windows è davvero così male su ram? Sto eseguendo Debian con il sistema completo in ram (nessuna unità fisica) e posso avere dozzine di schede del browser Web aperte, testo e fogli di calcolo di LibreOffice, fotoritocco gimp, e guardare un video o ascoltare musica, lasciando circa 3 concerti gratis spazio per programmi o file, il tutto su un totale di 8 GB. Non sono un odio per la vittoria, ma dalle tue parole "la configurazione aziendale totale di BS" suona molto come Windows stesso ...
Xen2050

1
Bene, questo è discutibile: l'OP ha ragione. La prima volta che ho acquistato machiens da 8 GB era intorno al 2010. Questo è il 2017. Le applicazioni che usano la memoria da 16 GB non sono così rare in alcuni campi (suggerimento: non scrivere e-mail e no, la parola va bene, la maggior parte delle persone non ci scrive romanzi). Questo è un piccolo investimento: la memoria da 16 GB è un pranzo pazzesco o qualcosa del genere.
TomTom,

7
@ Xen2050 Mi chiedevo se fosse davvero così male, quindi sul mio computer Windows 10 da 6 GB ho aperto Outlook, Excel, Word, Edge, ho un'istanza molto piccola di SQL Server in esecuzione, Malwarebytes sembra fare qualcosa con 170 MB , Ho aperto Visual Studio 2017, ho Firefox aperto qui e utilizzo la memoria al 65% e Windows non ha nemmeno dovuto iniziare a utilizzare la memoria compressa. Quindi, IME, Windows 10 funziona bene con meno di 8 GB di RAM e, comunque, l'apparente antipatia di Damon per Windows è irrilevante per la risposta.
Andrew Morton,

1
@Damon: Ma a meno che tu non abbia fatto una sorta di analisi su ciò che stava consumando la RAM aggiuntiva, non c'è alcuna base per incolparla su "la schifezza di Windows" contro "la schifezza del mercato degli accessori installata dal datore di lavoro". Poiché molte persone (incluso me stesso) hanno eseguito calcoli ad alta intensità di memoria, su Windows 7, Windows 8.xe Windows 10, senza questo tipo di problema, suggerisce fortemente (ma non dimostra) che il colpevole non fa parte di Windows stesso.
Ben Voigt,

6

Un'alternativa semplice sarebbe quella di eseguire l'applicazione sul PC remoto , possibilmente con un account utente dedicato, e controllarla semplicemente tramite RDP, VNC o qualunque cosa sia conveniente.


Se il PC remoto ha abbastanza RAM ...
Terminale laterale

1
@LateralTerminal È implicito.
Clonkex,

2
Sì, unendo la RAM di due macchine su una rete ... la rete non funzionerà, non per le normali applicazioni (il tipo quadrato, grigio con pulsanti e menu).
Rackandboneman,

6

Un'altra opzione è quella di distribuire temporaneamente l'applicazione in un ambiente in cui ram può essere facilmente ridimensionato.

Guarderei un'istanza di Amazon AWS, che può essere modificata in dimensioni con un riavvio.

IE una piccola istanza come una C5.large ha 4 GB di RAM e 2 core e costa $ 2,04 USD al giorno per Linux, o $ 4,26 USD al giorno per un'installazione di Windows. Lo spazio su disco EBS è un costo aggiuntivo e si ridimensiona in modo lineare con GB assegnati.

È possibile impostare il sistema in dimensioni più ridotte, quindi quando si desidera ottenere il massimo livello di rumore, arrestarlo, modificare le dimensioni dell'istanza ed eseguire il software.

  • m5.4xlarge è 64 GB di RAM e 16 core, per $ 18,44 USD / giorno o $ 36,10 USD / giorno per Windows.
  • r4.8xlarge è 244 GB e 32 core, per $ 51,07 USD / giorno o $ 86,40 USD / giorno con Windows.
  • x1.32xlarge è 1952 GB e 128 core, per $ 320,12 USD / giorno o $ 461,43 / giorno con Windows

O il più grande ...

  • x1e.32xlarge è 3904 GB e 128 core, per $ 640,52 USD / giorno o $ 781,82 / giorno con Windows. Se il tuo collega ha bisogno di più di questo, il problema deve essere riscritto in modo più ottimale.

https://www.ec2instances.info/ ti aiuterà a scegliere una taglia adatta. Nota che alcune località costano più di altre. Singapore e la California del Nord sono costose. Tuttavia, la VM non costa nulla quando non è in esecuzione, a parte i costi di archiviazione su disco.

Il rovescio della medaglia è che se hai bisogno di questa memoria per molto tempo, l'acquisto di tempo VM è un modo costoso per farlo. Tuttavia, a volte i contabili sembrano preferire i costi operativi come l'affitto, ai costi di capitale come gli aggiornamenti.


1
Mi rendo conto che questa risposta non riguarda "l'accesso alla RAM tramite la rete" come da richiesta dell'OP. È più come accedere a un host remoto che ha più RAM. Tuttavia, sapendo come funzionano i budget in alcuni luoghi, questa potrebbe essere una soluzione valida per svolgere il lavoro in modo finanziabile.
Criggie,

4

Come altri hanno già detto, è tecnicamente possibile ma non ne vale la pena.

Tuttavia, se si desidera accelerare l'uso del computer, è possibile esternalizzare alcune applicazioni su un server remoto.

Questo dipenderà principalmente da cosa stai lavorando e da quale applicazione usi. Se stai eseguendo programmi che richiedono molto tempo di elaborazione per un piccolo output di dati, potresti farli funzionare su un server diverso dal tuo computer per risparmiare tempo e risorse mentre lavori su qualcos'altro.

L'esempio che ho in mente è un server che verifica il mio codice ogni volta che invio una modifica. L'idea con tale soluzione è che è limitata a casi d'uso specifici.


4

Chiedi all'IT di acquistare più RAM per il tuo PC e di dimostrare la necessità utilizzando uno screenshot dell'utilizzo dell'app in Task Manager.


4
Soluzione pratica ... anche chiedere all'IT di scambiare temporaneamente più RAM da altri sistemi dovrebbe essere una risposta "libera".
Xen2050,

2
@ Xen2050 Nel frattempo il tuo collega piange perché il suo sistema non si avvia più.
Willtech,

3
@Willtech è normale e corretto per l'IT mantenere parti di ricambio di tutti i componenti e parti di interi sistemi di lavoro. I tempi di fermo sono i costi reali.
Christopher Hostage,

3

Esiste una soluzione commerciale per questo, tramite una società chiamata Kove ( http://kove.net/). Richiede un'infrastruttura Infiniband per funzionare sul "backplane" (Ethernet funziona normalmente), sebbene a volte possano essere disponibili altre opzioni come RoCE, a seconda delle specifiche. Forniscono una serie di interfacce trasparenti per consentire l'integrazione con zero code change e API per il bypass del kernel con un accesso più diretto alla CPU (ovvero, evitando il sovraccarico del kernel). In termini di prestazioni, dipende dalla tua applicazione. Se sei legato alla CPU, l'impatto potrebbe essere minimo (il che può essere sorprendente). Se la larghezza di banda della memoria è legata all'host locale, ti daranno memoria più grande, ma sarai strozzato dal collo di bottiglia già esistente. In questo caso, è vantaggioso per il carico di lavoro avere una memoria maggiore di quella che può essere inserita in una scatola, e non esaurire la RAM? Abbiamo visto (molto) buoni risultati con le librerie di virtualizzazione e machine learning di Python. Le applicazioni HPC di fascia alta tendono a peggiorare, ma abbiamo usato le API C e siamo riusciti a mantenere accettabili le prestazioni, riducendo al contempo il conteggio dei nodi (i nodi erano lì per la RAM, non i cicli della CPU), un vantaggio rispetto all'MPI . È difficile capire se questa sia una buona soluzione per il tuo collega, ma è un'opzione che puoi esaminare. Spero che aiuti. Per essere chiari, non lavoro per Kove e non ho alcun incentivo finanziario, ma ho collaborato con loro per un certo numero di anni e penso che questa tecnologia abbia il potenziale per avere un impatto sostanziale sul modo in cui viene fatto un determinato calcolo. ma abbiamo usato le API C e siamo riusciti a mantenere le prestazioni accettabili riducendo il conteggio dei nodi (i nodi erano lì per la RAM, non i cicli della CPU), il che è un vantaggio rispetto a MPI. È difficile capire se questa sia una buona soluzione per il tuo collega, ma è un'opzione che puoi esaminare. Spero che aiuti. Per essere chiari, non lavoro per Kove e non ho alcun incentivo finanziario, ma ho collaborato con loro per un certo numero di anni e penso che questa tecnologia abbia il potenziale per avere un impatto sostanziale sul modo in cui viene fatto un determinato calcolo. ma abbiamo usato le API C e siamo riusciti a mantenere le prestazioni accettabili riducendo il conteggio dei nodi (i nodi erano lì per la RAM, non i cicli della CPU), il che è un vantaggio rispetto a MPI. È difficile capire se questa sia una buona soluzione per il tuo collega, ma è un'opzione che puoi esaminare. Spero che aiuti. Per essere chiari, non lavoro per Kove e non ho alcun incentivo finanziario, ma ho collaborato con loro per un certo numero di anni e penso che questa tecnologia abbia il potenziale per avere un impatto sostanziale sul modo in cui viene fatto un determinato calcolo.


Quanti gigabyte di memoria è possibile acquistare per l'installazione di infinityband?
joojaa,

Sì, il problema principale qui è il piccolo punto che parla di avere solo memoria da 8 GB e di aver bisogno di 16. Questo non è "Come faccio a usare la ram remota" ma "perché diamine uso un sistema che ha specifiche di 10 anni" .
TomTom,

@jooja Abbiamo 6 TB. Sulla base di ciò che abbiamo visto, non abbiamo visto un limite. È possibile continuare ad aggiungere ulteriori dispositivi RAM remoti. Sembra ridimensionarsi in modo abbastanza lineare, quindi è un problema di ingegneria / costo. Abbiamo progettato un sistema da 1PB una volta su carta, ma ovviamente non potevamo metterlo in campo per testarlo.
Bill

@ TomTom Non ho visto il commento su 8 GB, ma sì, chiaramente se stiamo parlando di 8 GB contro 16 GB di RAM, qualche $ K per una nuova macchina risolverà il problema.
Bill

Diamine, per qualche centinaio di dollari, puoi probabilmente aggiornare la RAM a 32 GB, a meno che la scheda madre non sia ridicolmente vecchia e limitata.
soffice

2

Un altro punto di vista: forse il problema non è il limite delle risorse di sistema, ma l'applicazione dispendiosa che il tuo amico sta scrivendo. 6 GB di RAM sono un sacco di memoria.

Solo perché molte delle altre app sono eccessivamente gonfie , ciò non significa necessariamente che la tua applicazione amica debba essere una di queste. L'uso di diversi metodi di programmazione può ridurre i requisiti di memoria migliorando la velocità. Ad esempio, se l'app carica l'intero set di dati in memoria e quindi funziona, sarà molto più dispendiosa rispetto ad esempio archiviare i dati nel database SQL (locale o remoto) con pochi indici selezionati e accedervi da lì. Se possibile, esegui l'elaborazione dei dati blocco per blocco, anziché caricarli tutti in una volta. Anche le strutture in memoria potrebbero essere dispendiose. Memoria libera quando hai finito. Non caricare nella RAM ciò che è possibile invece mappare in memoria. E centinaia di altri suggerimenti ...

Se l'applicazione ha davvero bisogno di più memoria che deve essere archiviata su altri computer, può essere modificata per usare memcached e simili per archiviarla lì. Punti bonus in quanto si ridurranno meglio in futuro.


5
6 GB di memoria non sono molto terribili a seconda dell'applicazione. Anche gli utenti finali eseguono il fotoritocco (Photoshop ama la RAM e una fotocamera di fascia alta scatta immagini da 64 megapixel), l'editing video (MOLTO peggio), quindi c'è un lavoro matematico. Diamine, anche Excel utilizzerà volentieri un paio di GB. Non tutti scrivono e-mail, usano Twitter e altre cose del genere.
TomTom,

@TomTom se hai bisogno di un'elaborazione megapixel elevata, avrai requisiti di memoria elevati (per natura della richiesta). Ma a meno che tu non stia eseguendo il genoma del DNA nel tuo foglio Excel e stia ancora utilizzando un paio di GB di RAM, è esattamente il tipo di programmazione gonfia e sciatta di cui sto parlando. Sai, il tuo budget di casa è stato felicemente elaborato come veloce (o più veloce) in Lotus 1-2-3 qualche decennio fa su macchine con 3 ordini di grandezza in meno di RAM (e almeno centinaia di volte processori più lenti) rispetto al tuo Excel di oggi.
Matija Nalis,

1
Whow, che risposta ignorante. Posso solo supporre che tu abbia poca esperienza con ciò che le persone usano Excel. Quando Microsoft ha realizzato la versione a 64 bit di Office, ha affermato che la sua utilità è scarsa: TRANNE Access e Excel in quanto vi sono alcune persone (principalmente gestori) che eseguono analisi brutalmente estese tramite Excel, utilizzando molti gigabyte di memoria. La flessibilità di Excel e l'accessibilità per i non programmatori ne fanno il loro strumento (gli statistici tendono ad essere addestrati nell'uso di R). Ho visto personalmente file Excel da 200 fogli di alcuni finanziatori.
TomTom,

Se il tuo budget di casa impiega molto tempo per calcolare in Excel, sei molto più ricco di me. Domanda interessante su Excel vs 1-2-3: il ciclo di calcolo core potrebbe essere più veloce in 1-2-3 perché non fa altrettanto. Ma su una macchina multi-core, Excel batterà facilmente 1-2-3. E ovviamente il gigantesco genoma dei fogli di giunzione probabilmente non si aprirà in 1-2-3 a causa delle dimensioni dei fogli. Nell'interesse della trasparenza, dovrei ammettere che in precedenza ho lavorato su Excel nel core team di calc, quindi potrei essere di parte ...
Chris Rae,

1

Quindi l'utente ha chiesto come condividere la memoria sulla rete. Non se è una buona idea. Quindi, ecco come puoi farlo.

Non sto dicendo che questa è una buona idea, o sarà performante, ma dovrebbe funzionare.

  • Computer 1 = "master" - dove viene eseguito il codice
  • Computer 2 = "figlio" - donatore di memoria

Suppongo che questo non sia Windows Server in cui è possibile creare un mount point iSCSI.

Computer 1 Passaggi:

  1. Scarica il ramdisk gratuito di Dataram: http://memory.dataram.com/products-and-services/software/ramdisk
  2. Crea un ramdisk e formattalo con NTFS: le istruzioni sono disponibili sul loro sito
  3. All'interno di Disk Manager, creare un file VHD sul ramdisk formattato con NTFS
  4. Condividi la directory principale di Ramdisk attraverso la rete con SMB: fai clic con il pulsante destro del mouse sull'unità, condividi, condividi questa cartella

Computer 2 passaggi:

  1. Mappa l'unità condivisa dal cild su un'unità
  2. Montare il disco rigido virtuale creato nel passaggio 3 sopra in Gestione disco
  3. Spostare la posizione del file di pagina locale sul disco rigido virtuale montato tramite Sposta file di pagina di Windows
  4. Rimuovere qualsiasi altra voce del file di paging.

Fatto!

Avvertenze: potresti essere in grado di saltare l'assurdità del disco rigido virtuale se Windows ti consente di spostare il file di paging nella condivisione di rete. Non ci sono molti esempi di questo online (per ovvi motivi).

Può verificarsi completa instabilità del sistema o qualcos'altro. Nessuno sa davvero cosa sarebbe successo.


0

Come hai detto "RAM" per la condivisione in rete non solo di "memoria" di qualsiasi tipo, la risposta finale sarà teoricamente sì, praticamente no.

Mentre altri tipi di memoria come l'archiviazione e altri dati temporanei vengono regolarmente condivisi in rete per vari scopi e motivi. Allo stesso modo, se necessario, la RAM può essere tecnicamente possibile condividere in rete. Ma le prestazioni e i costi saranno troppo alti per essere fattibili nel mondo reale.

La RAM o la memoria ad accesso casuale viene utilizzata da un sistema operativo come spazio di lavoro, pertanto vengono eseguite molte operazioni di lettura / scrittura. Su un sistema medio, la capacità di velocità dei dati con RAM è massima rispetto ad altre parti. Se si inserisce la RAM in una rete, è necessario disporre di una capacità di trasferimento dei dati ad altissima velocità e il costo sarà elevato anche se possibile per ottenere tecnicamente. Con una piccola parte del costo per un aggiornamento della velocità di rete otterrai RAM per la tua macchina localmente.


0

Le applicazioni in genere vengono eseguite nella memoria virtuale, quindi il loro requisito di memoria virtuale può superare la memoria fisica disponibile del sistema senza conseguenze diverse dalle prestazioni. Il sistema operativo semplicemente pagina virtuale memoria su disco per liberare memoria fisica come necessario in qualsiasi momento, per uso attivo. Questo di solito funziona bene per le applicazioni che hanno una località ragionevole (l'attività in un dato momento è in qualche modo focalizzata su aree limitate nello spazio di memoria virtuale dell'applicazione). Se un'applicazione ha una localizzazione scadente (facendo costantemente riferimento alla memoria in tutto il suo spazio virtuale), funzionerà male a meno che tutta la sua memoria virtuale non possa essere ospitata nella memoria fisica (tutta la sua memoria virtuale è residente).

Quindi, ci sono alcune possibilità qui:

  • Se l'applicazione ha semplicemente un ingombro elevato ma una buona località, dovresti essere in grado di eseguirlo sul computer che hai a disposizione; le prestazioni possono essere accettabili, possono o meno migliorare sensibilmente su un computer con più memoria.
  • Se ha una localizzazione scadente, potresti scoprire che funzionerà comunque sul computer disponibile, solo molto male. (Questo sembra essere il tuo caso)
  • Aggiorna l'unità (presunta) a disco magnetico a un'unità a stato solido (sono significativamente più veloci)
  • Aggiungi memoria al computer che hai a disposizione (se possibile)
  • Potrebbe essere necessario trovare un computer con più memoria ed eseguirlo su quello.
  • Migliora l'applicazione in modo che abbia un'impronta virtuale più piccola o una località migliore (se sei o sei in associazione con l'autore dell'applicazione).

L'idea di utilizzare la memoria su un computer remoto sta fondamentalmente creando un file di paging in rete . In teoria, può funzionare, ma in pratica le prestazioni saranno molto migliori se il file di paging fosse locale sul computer (il suo disco rigido) a causa della larghezza di banda e della latenza della rete. Non importa se il sistema remoto sta ospitando il file di paging in memoria o sul suo disco, il collo di bottiglia (limitatore di prestazioni più significativo) sarà la rete. Ciò sarà particolarmente vero su Internet, ma lo sarà anche se il computer remoto è adiacente sulla stessa LAN.


Windows non consentirà un file di paging su un'unità di rete, quindi anche se sarebbe abbastanza veloce, non può essere fatto.
Jamie Hanrahan,

@JamieHanrahan Apparentemente, puoi cambiare le impostazioni direttamente nel registro. Mi chiedo se abbiano escluso alcuni dettagli poiché le unità di rete sono per utente in Windows. Ho anche il sospetto che questo si interromperà dopo un riavvio.
ivan_pozdeev,

1
Tuttavia è un'idea terribile, motivo per cui l'IU la preclude. Le connessioni di rete non sono abbastanza affidabili da fidarsi del paging. Ricorda che molti dati del kernel (pool di paging) possono essere paginati. Se non è accessibile, anche per un periodo molto breve, il sistema operativo si arresterà in modo anomalo.
Jamie Hanrahan,

0

Questo dipende davvero dal tipo di applicazione e per quale ram viene utilizzato.

Ad esempio, molte applicazioni Web possono utilizzare la RAM sulla rete connettendosi a un memcachedserver. Ciò consentirà di archiviare i dati della cache (e altri dati a cui dovrebbe essere rapido accedere) su un altro computer con molta RAM.

Naturalmente questo è specifico dell'applicazione e necessita di un'applicazione che può utilizzare memcached. Questo non ti aiuterà ad aprire una seconda istanza di gioco poiché un browser non supporta l'utilizzo di un tale backend della cache.


-1

Invece di condividere la RAM, basta codificare l'applicazione per creare un file .exe figlio , che verrà eseguito sul PC di rete e farà lo stesso su quel PC.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.