my.ASPItalia.com
ASP.NET
|
HTML5
|
LINQ e Entity Framework
|
Silverlight
|
Windows Phone
|
.NET Framework
|
Windows 8
|
Libro WP7
|
Libro HTML5
|
Corso HTML5
Iscriviti
Login
Newsletter
Home
Articoli
Script
Notizie
FORUM
Blogs
Media
Tutorials
Corsi
Libri
Eventi
Tags
Tutti i forum
Ricerca
FAQ
Fai una domanda
Consigli sulla gestione della memoria per applicazioni .NET in terminal server
in
.NET Framework
>
.NET Framework
Ultimo messaggio
LukePet
il 24 giugno 2011 alle 09:02
36 messaggi
dal 16 aprile 2008
www.pollosky.it
Salve, ho alcuni dubbi su un progetto che mi trovo a gestire e volevo da voi alcuni consigli in base alle vostre esperienze. Vi spiego subito la situazione.
Ho un server con 12Gb di RAM e sistema operativo Windows Server 2008 R2; su tale server risiede un'applicazione di gestione delle vendite sviluppata in WPF e che utilizza NHibernate (2.1.2) per la persistenza dei dati (il DBMS è SQL Server 2008). Al server accedono contemporaneamente via VPN dai 30 ai 40 utenti, che utilizzano l'applicazione in Desktop Remoto.
In questi giorni stavo monitorando il consumo di risorse nei momenti in cui lavorano tutti all'applicazione ed ho visto che per ogni utente la mia applicazione occupa dai 300 ai 500 mb; tale situazione sembra ridurre la memoria disponibile per SQL Server (che inizialmente ho visto essere intorno ai 2Gb, mentre nei momenti di massimo carico l'ho vista scendere a 400mb) e mi chiedevo se questo potesse incidere sulle performance nelle operazioni di lettura/scrittura dati nel db. Inoltre ho visto che praticamente il sistema raggiunge quasi 100% della memoria in uso ed ho paura che questa situazione "limite" possa portare ad ulteriori problematiche.
Ho iniziato ad analizzare la mia applicazione per rendermi conto di quale possa essere la causa di tale consumo di memoria e mi sono reso conto che in parte ciò è dovuto alla cache di NHibernate. Nell'applicazione infatti sono presenti delle manutenzioni che trattano una gran mole di dati e, nel momento in cui carico i dati, la memoria in uso per il singolo processo cresce di molto. La cosa che non mi convince è che se chiudo la form di manutenzione di tali dati la memoria rimane comunque allocata (e credo che ciò sia dovuto al fatto che i dati rimangono comunque nella cache di NHibernate), per poi essere riciclata automaticamente quando ci sono nuove richieste.
Alla luce di ciò le mie domande sono...
In una situazione del genere mi devo preoccupare del fatto che la memoria in uso del sistema sia quasi il 100%? o sarebbe oppurtuno estendere la RAM?
E' normale che la mia applicazione non rilasci immediatamente la memoria allocata in seguito al caricamento dei dati? Il riciclo della memoria è gestito automaticamente del sistema?
Sarebbe opportuno che nella configurazione di SQL Server prevedessi un limite minimo di memoria assegnata al processo?
Come faccio a rendermi conto se sono effettivamente in una situazione di criticità?
In base alle vostra esperienze personali avete dei consigli da darmi in merito?
Vi ringrazio in anticipo per informazione.
Luca
Rispondi
Quoting
Salto rapido
Ultimi messaggi
Tutti i forum
Ricerca
Utenti online
ASP.NET
ASP.NET 2.0
ASP.NET 3.5
ASP.NET 4.0
.NET Framework
Silverlight
Windows Phone
Windows Presentation Foundation e WinForms
Windows Communication e Workflow
ASP - avanzato
ASP - base
SQL Server e MySQL
E-commerce
Hosting
Altri linguaggi e tecnologie
Windows Server, IIS & Security
Libri
OT
Commenti: blogs e notizie
Eventi
Torna al forum
| Feed
RSS
ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Effettua il login!
Hai dimenticato la password?
Ultimi messaggi
WCF, Oggetti POCO ed INCLUDE
Aspettare risposta dal SerialPort (C# 4.0)
(3)
Problema con chiave di registro
(1)
Confusione Tra Ado.net EntityDataModel e DbContext
(3)
copia pdf
(1)
Convertire file HTML in XML
(2)
Errore apertura file excel
UTENTI ONLINE
In primo piano
Annunciate le versioni ufficiali di Visual Studio 11
Rilasciato Visual Studio 11 Beta: scopri tutte le novità!
Windows 8 Consumer Preview: segui con noi la diretta
I più letti di oggi
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Applicazioni Metro con XAML: cosa cambia per lo sviluppatore .NET con Windows 8
Screencast 'Primi passi con Windows Workflow Foundation'
Windows Phone 7.5 Developer Day: Introduzione allo sviluppo
WhyMCA - Bologna
ASP.NET 4.0 in C# e VB - Espresso
Sviluppare applicazioni per Windows Phone
Migliorare le prestazioni di Entity Framework limitando l'uso del metodo Include
Salvare e leggere rapidamente le impostazioni di un'applicazione Windows Phone
Estrarre un elemento in una determinata posizione da una lista non indicizzata con LINQ
Media
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Metro Style App per Windows 8 con HTML e Javascript
Tutti i media
In evidenza
Il meglio della settimana
Dal 29 febbraio arriva WinRTItalia.com: tutto sullo sviluppo per Windows 8 e Metro
Migliorare le prestazioni di Entity Framework limitando l'uso del metodo Include
Aprire una popup in Silverlight
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Disegnare un'applicazione a servizi con Entity Framework e WCF
Il nuovo tag time in HTML5
Salvare e leggere rapidamente le impostazioni di un'applicazione Windows Phone
MISC
I nostri autori
Collabora con noi!
Media Kit - Pubblicità sul nostro network