35568
Commento:
|
15851
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
## page was renamed from Fcm/Edizione/HowTo6 #acl GruppoAdmin:admin,read,write,revert GruppoOperatori:admin,read,write,revert GruppoEditori:read,write,revert CristianoLuinetti:admin,read,write,revert MarcoBuono:admin,read,write,revert AldoLatino:admin,read,write,revert PaoloGarbin:admin,read,write,revert GruppoFcm:read,write,revert -All:read -Known:read |
#acl GruppoAdmin:admin,read,write,revert GruppoOperatori:admin,read,write,revert GruppoEditori:read,write,revert GruppoFcm:read,write,revert palombo:admin,read,write,revert new.life:admin,read,write,revert paolettopn:admin,read,write,revert Known:read All:read |
Linea 6: | Linea 6: |
I database sono utilizzati per immagazzinare informazioni riguardo oggetti o dati. Nel precedente tutorial, abbiamo mappato come dovrebbe apparire il nostro database di libri. Abbiamo progettato tabelle per i nostri dati, e definito relazioni tra queste tabelle. Ora metteremo in atto la nostra pianificazione creando veramente il file del database, aggiungendo le tabelle e creando le relazioni. | |
Linea 7: | Linea 8: |
HOW-TO Scritto da Kevin O'Brien |
Creare il file del database |
Linea 10: | Linea 10: |
Usare Il Comando TOP | Come ho menzionato prima Base non è un database ma una interfaccia per accedere e manipolare un file di database. Anche se è possibile connettersi a a molti differenti tipi di database, useremo il database di default per il nostro database di libri. |
Linea 12: | Linea 12: |
Uno dei grandi vantaggi nell'utilizzare Linux è che sono disponibili alcuni grandi strumenti che ci aiutano a capire cosa sta succedendo al nostro computer e a diagnosticare eventuali problemi. Uno dei più utili è il comando Top. Tratterò di alcune delle cose che si possono fare e forse menzionerò altresì uno o due ulteriori comandi. | Per fare partire la creazione guidata del database, selezionate Database dalla pagina iniziale di LibreOffice o File > Nuovo > Database. La prima schermata della creazione guidata del database ci lascia scegliere se vogliamo aprire un database esistente o crearne uno di nuovo. Selezionate Creare un Nuovo Database e premete Prossimo. |
Linea 14: | Linea 14: |
Innanzitutto, tanto per tirarlo fuori, c'è un'alternativa chiamata htop e pianifico di trattarlo in un secondo momento. Però, generalmente, htop ha bisogno di essere installato prima di di poterlo usare, mentre top dovrebbe già essere presente sul proprio sistema, rendendolo un buon punto di partenza. L'uso del comando è semplice: basta aprire un terminale/console e digitare top. Il risultato sarà qualcosa simile all'immagine mostrata a destra. | La seconda schermata della creazione guidata ci chiederà se vogliamo registrare il database e che cosa vogliamo fare una volta che il database è stato creato. Registrare un database in LibreOffice lo rende disponibile a tutti i nostri documenti. Non ne abbiamo bisogno per il nostro database, così selezionate No – Non registrare il database. Selezionate Aprire il Database per modifica e premete fine. Libre Office aprirà una finestra di dialogo per definire una posizione e un nome per il database. Ho nominato semplicemente il file: libri. |
Linea 16: | Linea 16: |
Ci sono molte informazioni in questa schermata, quindi ci vorrà un po' di tempo per passare in rassegna tutte le opzioni. Quello che possiamo vedere subito è che elenca i processi in esecuzioni sul proprio computer e che mostra l'identificativo di ciascun processo, ecc. Inoltre sopra a questa lista è visibile ogni sorta di numero criptico. Tratteremo di ognuno di essi in questo articolo o nei successivi, ma per farlo dobbiamo andare avanti. | Una volta che avete un nome e una posizione per il file di database, la finestra principale di Base si apre. In basso a sinistra, avete i differenti pezzi con cui potete realizzare un file di database. In cima a destra vi permette di accedere alle differenti azioni che potere intraprendere per ciascuna parte, e in basso a destra mostra gli oggetti già creati. |
Linea 18: | Linea 18: |
Uso della CPU | Tipi di campo |
Linea 20: | Linea 20: |
Per impostazione predefinita, top elenca i processi in ordine di quantità di CPU che ciascuno di questi utilizza, espressa come percentuale sul totale disponibile. È importante da sapere, poiché se la propria CPU arriva al limite, se ne vedranno degradare le prestazioni. Ciò si può manifestare con ritardi nella risposta a richieste tramite tastiera e/o mouse, scatti nella riproduzione audio o nel video, ecc. Sul mio desktop Kubuntu, ho un pannello laterale impostato per il monitoraggio sull'uso della CPU, della temperatura, della memoria e dell'area di Swap utilizzata e del traffico di rete, così da poter controllare tali funzioni critiche ed evitare che la situazione mi sfugga di mano. Ho visto situazioni in cui l'uso della CPU ha raggiunto il limite del 100% e li è rimasta (generalmente è un risultato di Flash, che non può morire troppo presto, ma questo è uno sfogo per un altro giorno). Quando ciò accade, il comando top mi permette di controllare velocemente e vedere qual'è l'applicazione problematica così posso terminarla. | Prima che creiamo la nostra prima tabella, abbiamo bisogno di discutere alcuni dei tipi di campo comuni per un database. Quando voi selezionate un tipo per un campo, vi vengono presentate molte opzioni per il tipo. Molti dei tipi sono identici e sono qui per ragioni di compatibilità. I tipi più comuni sono: |
Linea 22: | Linea 22: |
Una cosa bella del comando top è che interagisce per tutto il tempo che lo si ha nel terminale. Quindi, possiamo uccidere un processo in maniera facile premendo semplicemente la k con un terminale aperto su cui top è in esecuzione. Ciò farà apparire un cursore lampeggiante al di sopra della lista dei processi. Basterà inserire l'ID del processo relativo all'applicazione che si comporta in modo anomalo ed è fatta. | Integer (ndt Intero) – un numero intero per esempio 123 VarChar – un stringa di caratteri di lunghezza variabile. Definirete la lunghezza massima per il VarChar. Date – una data, naturalmente, per esempio 10-15-2012 ( il formato esatto è specifico per la locazione) Time- un valore di tempo come 09:15:25 decimal - un numero reale composto da una parte intera e dalla parte frazionari, eg 123.45 (il separatore della parte intera e decimale è specifico per la locazione). |
Linea 24: | Linea 28: |
Ora, se guardiamo la schermata di top in esecuzione sul mio computer, potremmo notare alcune cose. Ho detto che dà la percentuale di CPU utilizzata rispetto al totale. E se guardiamo attentamente potremmo osservare che la somma delle percentuali supera il 100%. Come può essere, vi chiederete? Bene, la risposta è che la si sta guardando come percentuale del core sul quale il processo è in esecuzione. Poiché il computer è una macchina dual-core, ha due processori e può distribuire i processi individuali su qualunque core desidera. Così avrei potuto teoricamente vedere fino al 200% se avessi sommato i numeri qui di seguito (anche se sarebbe un male perché indicherebbe che siamo al limite). Se avessi un quad-core, potrei avere fino al 400%, ecc. | Per i nostri scopi useremo Integer e VarChar. |
Linea 26: | Linea 30: |
Priorità e precisione | Creare le Tabelle |
Linea 28: | Linea 32: |
L'idea di precisione è di determinare quali processi dovrebbero ottenere altri incentivi quando sono in esecuzione e quali dovrebbero essere messi in background. In altre parole, di impostare alcune priorità di accesso alla CPU. Questo avviene utilizzando un numero di precisione, che appare nella colonna NI. Nella schermata possiamo vedere che tutti i processi sono in esecuzione con numero di precisione zero. Ciò significa che sono in esecuzione con la priorità predefinita, che non è stata alterata in alcun modo. I numeri di precisione vanno da -20 a +19, con -20 come priorità più alta. Ho detto che 0 è la scelta predefinita, ma possiamo verificarlo sul sistema eseguendo il comando nice senza nessun argomento. Ciò che restituisce è il valore predefinito del numero di precisione. Per il momento mi fermo qui con questo argomento, ma se volete saperne di più c'è una buona pagina web presso http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-103-6/. Questo articolo spiegherà come poter cambiare il livello del numero di precisione per alcuni processi, se si desidera farlo. | Base ha tre modi differenti per creare le tabelle: attraverso la creazione guidata di tabelle, attraverso la vista di progetto e con istruzioni SQL. La creazione guidata è buona solo per creare specifici tipi di tabelle presi da un elenco di nomi di campo predefiniti. Il metodo SQL richiede la conoscenza e la comprensione del linguaggio SQL ed è oltre lo scopo di questo articolo. La vista di progettazione è di solito la scelta migliore e vi presenta una lista che voi riempirete per creare la vostra tabella. Useremo la vista di progettazione per creare le nostre tabelle per questo progetto. |
Linea 30: | Linea 34: |
Memoria | Cominceremo con la tabella Books (ndt Libri). Selezionate Tabelle dal pannello Database sulla sinistra. Nel pannello dei task, premete su Creare Tabella nella Vista di Progettazione. In cima avete etichette per ciascuno degli elementi di un campo: il Nome del Campo, il Tipo di Campo e la Descrizione. La Descrizione è opzionale ma è utile per prendere delle note su come è usato un campo. In basso vediamo le Proprietà del Campo. Questa sezione cambierà in funzione del tipo di campo che abbiamo selezionato. |
Linea 32: | Linea 36: |
Nella schermata, vicino alla colonna relativa all'uso della CPU c'è quella della memoria utilizzata, sempre espressa come percentuale del totale disponibile. In questo caso, accade che il processo che sta utilizzando maggiore CPU è anche quello che sta utilizzando più memoria, il che non è inusuale. Ma se vogliamo vedere i processi allineati per ordine di memoria consumata? Bene, come ho detto sopra, il comando top è interattivo. Per cambiare l'ordinamento basta premere la lettera maiuscola O mentre il comando è in esecuzione in un terminale. Questo porterà a una utilissima schermata di opzioni di ordinamento (mostrata sotto). | Nel primo campo inserite il nome BookID. Dalla lista a selezione, selezionate Integer. Inserire una descrizione spetta a voi. Sotto le proprietà del campo cambiate AutoValue a Sì. Questo metterà una icona nel riquadro a lato del record del campo mostrando che è l'indice ( o la chiave ) primario. Nella seconda riga digitate Titolo per il nome. Assegnate a questo un tipo VarChar. Ancora la descrizione spetta a voi. Nelle proprietà del campo lasciate la lunghezza a 100, il valore predefinito per VarChar. Il terzo campo è Published (ndt Pubblicato) con un tipo VarChar. Cambiate la lunghezza nelle proprietà del campo a 12. Ho scelto VarChar piuttosto che una data perché vogliamo soltanto l'anno e se l'anno di pubblicazione di un libro è sconosciuto posso semplicemente inserire “Sconosciuto”. Premete sulla icona per salvare e Base vi chiederà di inserire il nome della tabella. Inserite Books. |
Linea 34: | Linea 38: |
Con questa schermata aperta possiamo premere la lettera minuscola n, dare quindi invio e ottenere l'elenco di ordine di percentuale di memoria utilizzata. Oppure possiamo ordinarlo per altri modi, se necessario. | Le nostre tabelle per Authors e Media sono create pressapoco nello stesso modo: per Authors create due campi: AuthorID , integer (AutoValue:Yes); e Name, VarChar (lunghezza 50). Per Media, MediaID, integer (AutoValue:Yes); e Type , VarChar ( lunghezza 25). |
Linea 36: | Linea 40: |
Di nuovo, è utile se notiamo che stiamo per esaurire la memoria e dobbiamo sapere cosa sta succedendo. Se un processo sta inaspettatamente utilizzando molta memoria, sarebbe sicuramente un'indicazione. Questo non implica che si ha una qualche idea di cosa sia il normale in queste situazioni. Il modo migliore di dare un senso a ciò è di controllare periodicamente e osservare cosa sta succedendo. Nel mio caso, ho portato la mia macchina a 16GB di RAM, così da non aspettarmi di vedere, nella maggior parte dei casi, percentuali di utilizzo molto alte. Per esempio, giusto ora ho i mio pannello inferiore pieno di icone di programmi aperti (al momento sono 18) e un veloce controllo dell'output di top mostra che sto utilizzando il 35-40% del totale della memoria. | Le nostre due tabelle per le chiavi esterne richiedono un trattamento leggermente differente, create due campi interi di nome BookID e AuthordID. Premete sul riquadro dell'icona a fianco del primo record. Tenendo premuto il tasto Shift, premete sul riquadro dell'icona del secondo. A questo punto dovreste avere entrambi i record selezionati. Premete sul pulsante destro sul riquadro dell'icona e selezionate Chiave Primaria dal menu contestuale. Questo crea una chiave combinata. I due valori insieme creano una chiave primaria, che identifica univocamente ciascun record della tabella. Per la tabella BooksMedia, create due campi interi dal nome BookID e MediaID. Selezionate entrambi i campi, premete sul pulsante destro e selezionate Chiave Primaria. |
Linea 38: | Linea 42: |
Nella schermata, si vede un divoratore di memoria, ma ciò, di fatto, è previsto. Ho VirtualBox che esegue una macchina virtuale, configurata per usare 4GB di RAM (più altre risorse, ovviamente). Quindi, in questo caso, vedevo ciò che mi aspettavo di vedere. Ma se vedevo Firefox che utilizzava troppa memoria, avrei saputo che c'era un problema e l'avrei prontamente chiuso. | Creare Relazioni |
Linea 40: | Linea 44: |
q per Quit | Una volta che abbiamo definito tutte le nostre tabelle, possiamo creare le relazioni che collegano tutto insieme. Creeremo relazioni tra le nostre tre tabelle principali e le nostre tabelle con le chiavi esterne. La direzione in cui trascinate i campi è importante, così fate molta attenzione al modo in cui lo fate. |
Linea 42: | Linea 46: |
Se si ha top avviato nel proprio terminale, si potrebbe voler sapere come uscirne ed è semplice, basta premere la lettera q (per Quit) e si ritornerà al prompt del terminale. Si possono ottenere ulteriori informazioni in questi due modi: il metodo stile vecchia scuola è di digitare 'man top' nel terminale, ma il nuovo metodo, migliorato, è di digitare 'info top'. Tuttavia penso che otterrete lo stesso risultato con entrambi i modi. Il punto è che si tratta di un comando fertile con molte opzioni. | Per far partire la finestra di dialogo Progettazione Relazioni andate a Strumenti > Relazioni. Vi saranno presentata una lista di tabelle. Selezionate una tabella e premete Aggiungi per aggiungere la tabella alla Progettazione delle Relazioni. Aggiungete le tabelle nel seguente ordine per farla facile: Authors, BooksAuthors, Books, BooksMedia, Media. Una volta che tutte le tabelle sono stte aggiunte, selezionate Close. |
Linea 44: | Linea 48: |
Interpretazione dei Dati di Sistema | Trascinate il campo BookID in Books su BookId in BooksAuthors. Un dialogo Relazione spunta fuori. Sotto l'opzione Aggiorna pigliate Update cascade e OK. Questo farà in modo di aggiornare il cmpao quando la tabella Books si aggiorna. Trascinate l'AuthorID in Authors a AuthordID in BooksAuthors: Selezionate Update cascade nel dialogo Relazione. Quindi trasicnate il BookID in Books a BookID in BooksMedia. Selezionate Update cascade. Infine trascinate MediaID in Media a MediaID in BooksMedia. Selezionate Update cascade. Il vostro progetto di relazione dovrebbe sembrare come quello fotograto sotto. |
Linea 46: | Linea 50: |
Abbiamo visto alcuni concetti base del comando top e ci siamo concentrati nell'esaminare la lista dei processi per individuare e correggere eventuali errori. Questa è ancora una cosa molto utile, naturalmente, ma nell'output ci sono anche molti dati di sistema utili. Riprendiamo la schermata usata l'ultima volta per mostrare il risultato di questo comando (mostrata sotto). Ora vogliamo concentrarci su quei numeri in cima che stanno rappresentando alcuni dati di sistema molto utili. Quindi partiamo dall'alto (letteralmente): Riga 1, la riga in cima Sulla prima riga (sopra) abbiamo il tempo di funzionamento. Effettivamente, questa è un informazione che si potrebbe ottenere usando il comando uptime così: Quindi questo è un indizio che il comando top è una raccolta di informazioni disponibili singolarmente da altri comandi, riuniti in un unico pacchetto di bontà impressionante. Ciò è molto conveniente. Così siamo in grado di vedere che sono le 15:52:05 e che il computer è in piedi da 17 giorni. Ci sono due utenti in questo momento, il che è normale. Uno di questi è root, ma non si dovrebbe mai usarlo per le attività ordinarie. È una pratica insicura e pericolosa. Mentre siamo registrati come root, ogni software avviato sul sistema ha il livello di privilegio di root. Il modo migliore è di creare un utente ordinario che non abbia un così ben alto livello di privilegio e registrarsi come tale utente. In questo caso l'utente è kevin. A proposito, Ubuntu rende molto difficile fare qualcosa che sia diversa da questa procedura. Se necessitate di diritti più alti, usate il comando sudo per darvi privilegi temporanei. L'ultima parte di questa riga è chiamata load. Questi tre numeri stanno fornendo il carico per i precedenti 1, 5 e 15 minuti. Ma cos'è il carico? È il numero medio di processi che sono eseguibili, o non si possono interrompere. Semplicemente, senza entrare troppo nel tecnico, è come viene occupata la CPU per la maggior parte del tempo. Ma il trucco è che non è regolato (normalizzato) per il numero di CPU. Ciò significa che un sistema a singola CPU con un carico di 1 viene caricato tutto il tempo. Ma sul mio sistema dual-core, non ho mai avuto 2, quindi sono a posto. Se si avesse un quad-core, il numero magico sarebbe 4 e cosi via. Riga 2, Attività Non c'è nulla di interessante da vedere qui. Quell'ultima categoria, zombie, può sembrare per lo meno interessante, ma in realtà non lo è. I processi zombie sono avvii che hanno terminato l'esecuzione e saranno presto chiusi. Riga 3, CPU Questa è meritevole di un'occhiata o due. L'ultima volta abbiamo osservato i processi in fondo all'output del comando top per vedere se qualcuno di loro stava monopolizzando la situazione. Su questa riga, anziché guardare al singolo processo, osserveremo l'intero quadro di ciò che sta succedendo. E qui non dobbiamo preoccuparci di quanti core abbiamo, questi numeri aggregano tutti i dati di tutti i core. La prima statistica è %us, che in questo caso è 32.0%. Questa è la percentuale dei cicli di CPU impegnati dai processi dell'utente. Non significa necessariamente quelli che una persona ha avviato, possono essere processi lanciati da Apache, MySQL, ecc. Se questa percentuale è molto alta, può essere l'indicazione di un problema, poiché abbiamo altre richieste da considerare. Per esempio, la prossima statistica è %sy, che è la percentuale di cicli CPU impegnati dal kernel e da altri processi di sistema. Ovviamente dobbiamo avere a disposizione alcuni cicli per essi o non avremo un computer funzionante. La terza, %id, è la percentuale del tempo di inattività della CPU, più è elevata meglio è (entro limiti ragionevoli, dobbiamo di fatto usare il computer!). Fintanto che abbiamo una ragionevole disponibilità di tempo di inattività, non avremo verosimilmente problemi. Possiamo ricontrollarlo osservando la quarta statistica, %wa. È la percentuale di tempo di attesa di un processo per l'accesso alla CPU. In questo caso, .2% è buono. Non sarà piacevole vederlo troppo spesso a 0.0%, poiché, data la natura del calcolatore, i processi sono in competizione per il tempo di CPU, ma un elevato numero qui indicherebbe di sicuro un problema. Il resto delle statistiche si possono quasi ignorare, in quanto si occupano di questioni davvero oscure, ma si possono esaminare nella pagina di man per top. Righe 4 e 5, Memoria e Area di Swap Queste due righe è meglio trattarle congiuntamente, poiché è necessario combinare queste informazioni per raccontare una storia completa. Quello che dobbiamo sapere è quanta memoria è stata usata e quanta è disponibile, in ogni momento. È importante perché la carenza di RAM è la causa più comune di un computer lento e pigro. A volte può sembrare un problema completamente diverso, questo perché è importante osservare i dati reali. Per esempio, se notiamo che il disco rigido è costantemente 'rumoroso' (noto come thrashing) possiamo pensare di avere un problema di I/O al disco stesso, ma in realtà ciò è più comunemente causato da una mancanza di RAM. Quando non c'è abbastanza RAM per contenere tutto il codice dei programmi e i dati attualmente in uso, alcuni di essi vengono copiati sul disco rigido (detto paging) per liberare spazio per altro codice e dati. Lo spazio in cui tali dati sono copiati è chiamato area di swap. Per cui quando il disco rigido è costantemente rumoroso generalmente significa che il codice e i dati sono continuamente scritti e letti da e per l'area di swap e ulteriore RAM potrebbe eliminare il problema. Ora, una delle cose che dobbiamo capire per interpretare questi dati è che scrivere sul disco rigido e leggere dal medesimo è approssimativamente più lento di 4 mila milioni di volte rispetto allo scrivere e leggere sulla RAM. Quindi vogliamo minimizzare l'uso dell'area di swap per motivi prestazionali. Ma proprio perché la RAM è così tanto più veloce del disco rigido, il sistema operativo preferisce usarla ogni volta che è possibile. Un modo di accelerare le cose è di mantenere il codice in memoria finché non si chiude il programma. Dopotutto, possiamo riaprirlo, e rimuoverlo dalla RAM lo accelererebbe molto. Quindi il sistema operativo immagazzina nella RAM molto codice che non è effettivamente usato in maniera attiva. A causa di ciò, il resoconto sulla RAM utilizzata sarà simile a quando è sul punto di esaurirsi, anche se potrebbe non essere questo il caso. Dobbiamo osservare tutti i dati per valutarlo. In questo caso, abbiamo iniziato notando che la macchina ha 15.949.272k di RAM. In altre parole, 16GB, come sapevo perché era quella che ci avevo installato. E il numero successivo dice che praticamente tutti i 16GB sono stati utilizzati. Questo è un problema? Non proprio. Se osserviamo la seconda riga, vediamo che ci sono 6GB di spazio swap, ma sono a mala pena utilizzati (sto usando poco meno di 2MB di RAM). E l'ultimo numero racconta la storia. Dei miei 16GB di RAM, una buona metà, 8GB, è stata usata per depositarci il codice. Se volessi aprire un programma che era già in memoria, grande, il codice è già li e si aprirà velocemente. Se voglio aprire qualche altro programma, il sistema operativo cancellerà parte del codice depositato in memoria per liberare spazio, quindi non c'è problema. Htop, l'alternativa In realtà preferisco top, ma ad alcune persone piace di più htop e penso che vedrete il perché. Per alcune cose è più facile lavorarci, in particolare se si necessita di fare alcune operazioni inerenti ai processi. Notate però che su molti sistemi non lo si trova già installato, per cui lo si deve prima installare. Su macchine Ubuntu, si installa con sudo apt-get install htop Innanzitutto, si può notare che presenta quasi gli stessi dati sui singoli processi del comando top. I processi, per scelta predefinita, sono sempre elencati in ordine di utilizzo della CPU, si può ancora vedere l'ID del processo, gli utenti, le percentuali di utilizzo della CPU e della memoria, proprio come prima. Possiamo vedere il comando che ha lanciato il processo, invece del solo nome del programma. Diversamente da top, htop permette lo scorrimento orizzontale usando i tasti freccia. Su htop, abbiamo una interessante aggiunta, che è un visualizzatore grafico separato sull'utilizzo della CPU, per ciascuna di esse o per i core che si hanno, in questo caso 1 e 2 poiché si tratta di una macchina dual-core. E possiamo vedere l'utilizzo della memoria e dell'area di swap in una maniera che potremmo trovare facile da leggere. Tempo di funzionamento, carichi e attività sono mostrati in alto a destra. Il vero vantaggio di htop si ha quando si vuole far qualcosa su uno o più dei propri processi. Basta semplicemente usare i tasti freccia su e giù per evidenziare i processi e usare quindi uno dei tasti funzione mostrati sul fondo. Per esempio, se si evidenzia un processo e si preme poi F9 si ucciderà il processo. Premendo F7 (Nice-) si abbasserà il numero di precisione, incrementando così la priorità (si, non è intuitivo). E premendo F8 si ridurrà la priorità alzando il numero di precisione. Ma teniamo presente che per dare una priorità molto alta a un processo avremmo bisogno di accedere come root, magari utilizzando il comando sudo htop Personalmente, non ho molti motivi di pasticciarci, ma il peggio che potrebbe succedere è che potrebbe essere necessario riavviare il computer se davvero roviniamo tutto. Altri tasti funzione ci permettono di cambiare rapidamente l'ordinamento, il campo su cui ordinare e così via. Ricapitolando, penso che htop sia molto utile, ma tendo a usare molto più spesso top per due motivi. Il primo è che mi piacciono le più dettagliare informazioni che fornisce. Il secondo è che lo avrò disponibile su qualsiasi sistema davanti al quale probabilmente mi siedo, mentre htop necessiterà di essere installato e ciò vuol dire una connessione internet funzionante, che potrei anche non avere. Ma, in generale, questi due comandi fanno spesso le stesse cose e sono una cruciale aggiunta ai propri strumenti Linux. |
Con le nostre tabelle e relazioni create, siamo pronti a lavorare sulla creazione di moduli per l'inserimento dei dati. Nel nostro prossimo How -To creeremo i moduli per l'inserimento dei dati. Tutto insieme contribuirà a creare un sistema usabile per l'inserimento dei dati. |
Linea 102: | Linea 55: |
Linea 105: | Linea 57: |
HOW-TO Scritto da Kevin O'Brien |
HOW-TO – LibreOffice Parte 20 - Base |
Linea 108: | Linea 59: |
Usare Il Comando TOP | Scritto da Elmer Perry |
Linea 110: | Linea 61: |
Uno dei grandi vantaggi nell'utilizzare Linux è che sono disponibili alcuni grandi strumenti che ci aiutano a capire cosa sta succedendo al nostro computer e a diagnosticare eventuali problemi. Uno dei più utili è il comando Top. Tratterò di alcune delle cose che si possono fare e forse menzionerò altresì uno o due ulteriori comandi. | I database sono utilizzati per immagazzinare informazioni riguardo oggetti o dati. Nel precedente tutorial, abbiamo mappato come dovrebbe apparire il nostro database di libri. Abbiamo progettato tabelle per i nostri dati, e definito relazioni tra queste tabelle. Ora metteremo in atto la nostra pianificazione creando veramente il file del database, aggiungendo le tabelle e creando le relazioni. |
Linea 112: | Linea 63: |
Innanzitutto, tanto per tirarlo fuori, c'è un'alternativa chiamata htop e pianifico di trattarlo in un secondo momento. Però, generalmente, htop ha bisogno di essere installato prima di di poterlo usare, mentre top dovrebbe già essere presente sul proprio sistema, rendendolo un buon punto di partenza. L'uso del comando è semplice: basta aprire un terminale/console e digitare top. Il risultato sarà qualcosa simile all'immagine mostrata a destra. | Creare il file del database |
Linea 114: | Linea 65: |
Ci sono molte informazioni in questa schermata, quindi ci vorrà un po' di tempo per passare in rassegna tutte le opzioni. Quello che possiamo vedere subito è che elenca i processi in esecuzioni sul proprio computer e che mostra l'identificativo di ciascun processo, ecc. Inoltre sopra a questa lista è visibile ogni sorta di numero criptico. Tratteremo di ognuno di essi in questo articolo o nei successivi, ma per farlo dobbiamo andare avanti. | Come ho detto in precedenza, Base non è un database ma un'interfaccia per accedere e manipolare un file di database. Anche se è possibile connettersi a molti differenti tipi di database, useremo il database HSQL predefinito per il nostro database di libri. |
Linea 116: | Linea 67: |
Uso della CPU | Per fare partire la creazione guidata del database, selezionate Database dalla pagina iniziale di LibreOffice o File > Nuovo > Database. La prima schermata della creazione guidata del database ci lascia scegliere se aprire un database esistente o crearne uno nuovo. Selezionate Creare un Nuovo Database e premete Prossimo. |
Linea 118: | Linea 69: |
Per impostazione predefinita, top elenca i processi in ordine di quantità di CPU che ciascuno di questi utilizza, espressa come percentuale sul totale disponibile. È importante da sapere, poiché se la propria CPU arriva al limite, se ne vedranno degradare le prestazioni. Ciò si può manifestare con ritardi nella risposta a richieste tramite tastiera e/o mouse, scatti nella riproduzione audio o nel video, ecc. Sul mio desktop Kubuntu, ho un pannello laterale impostato per il monitoraggio sull'uso della CPU, della temperatura, della memoria e dell'area di Swap utilizzata e del traffico di rete, così da poter controllare tali funzioni critiche ed evitare che la situazione mi sfugga di mano. Ho visto situazioni in cui l'uso della CPU ha raggiunto il limite del 100% e li è rimasta (generalmente è un risultato di Flash, che non può morire troppo presto, ma questo è uno sfogo per un altro giorno). Quando ciò accade, il comando top mi permette di controllare velocemente e vedere qual'è l'applicazione problematica così posso terminarla. | La seconda schermata della creazione guidata ci chiederà se vogliamo registrare il database e che cosa vogliamo fare una volta che il database è stato creato. Registrare un database in LibreOffice lo rende disponibile a tutti i nostri documenti. Non è necessario per il nostro database, per cui selezionate No – Non registrare il database. Selezionate Aprire il Database per modificare e premete Fine. LibreOffice aprirà una finestra di dialogo per definire una posizione e un nome per il database. Ho nominato il file semplicemente “libri”. |
Linea 120: | Linea 71: |
Una cosa bella del comando top è che interagisce per tutto il tempo che lo si ha nel terminale. Quindi, possiamo uccidere un processo in maniera facile premendo semplicemente la k con un terminale aperto su cui top è in esecuzione. Ciò farà apparire un cursore lampeggiante al di sopra della lista dei processi. Basterà inserire l'ID del processo relativo all'applicazione che si comporta in modo anomalo ed è fatta. | Una volta che avete un nome e una posizione per il file di database, la finestra principale di Base si apre. In basso a sinistra, avete i differenti pezzi con cui potete realizzare un file di database. In cima a destra potete accedere alle differenti azioni da intraprendere per ciascuna parte, e in basso a destra sono illustrati gli oggetti già creati. |
Linea 122: | Linea 73: |
Ora, se guardiamo la schermata di top in esecuzione sul mio computer, potremmo notare alcune cose. Ho detto che dà la percentuale di CPU utilizzata rispetto al totale. E se guardiamo attentamente potremmo osservare che la somma delle percentuali supera il 100%. Come può essere, vi chiederete? Bene, la risposta è che la si sta guardando come percentuale del core sul quale il processo è in esecuzione. Poiché il computer è una macchina dual-core, ha due processori e può distribuire i processi individuali su qualunque core desidera. Così avrei potuto teoricamente vedere fino al 200% se avessi sommato i numeri qui di seguito (anche se sarebbe un male perché indicherebbe che siamo al limite). Se avessi un quad-core, potrei avere fino al 400%, ecc. | Tipi di campo |
Linea 124: | Linea 75: |
Priorità e precisione | Prima di creare la nostra prima tabella, abbiamo bisogno di discutere alcuni dei tipi di campo più comuni per un database. Quando selezionate un tipo per un campo, vi vengono presentate molte opzioni per tale tipo. Molti dei tipi sono identici, e questo per ragioni di compatibilità. I tipi più comuni sono: |
Linea 126: | Linea 77: |
L'idea di precisione è di determinare quali processi dovrebbero ottenere altri incentivi quando sono in esecuzione e quali dovrebbero essere messi in background. In altre parole, di impostare alcune priorità di accesso alla CPU. Questo avviene utilizzando un numero di precisione, che appare nella colonna NI. Nella schermata possiamo vedere che tutti i processi sono in esecuzione con numero di precisione zero. Ciò significa che sono in esecuzione con la priorità predefinita, che non è stata alterata in alcun modo. I numeri di precisione vanno da -20 a +19, con -20 come priorità più alta. Ho detto che 0 è la scelta predefinita, ma possiamo verificarlo sul sistema eseguendo il comando nice senza nessun argomento. Ciò che restituisce è il valore predefinito del numero di precisione. Per il momento mi fermo qui con questo argomento, ma se volete saperne di più c'è una buona pagina web presso http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-103-6/. Questo articolo spiegherà come poter cambiare il livello del numero di precisione per alcuni processi, se si desidera farlo. | Integer (ndt Intero) – un numero intero per esempio 123 |
Linea 128: | Linea 79: |
Memoria | VarChar – un stringa di caratteri di lunghezza variabile. Definirete la lunghezza massima per il VarChar. |
Linea 130: | Linea 81: |
Nella schermata, vicino alla colonna relativa all'uso della CPU c'è quella della memoria utilizzata, sempre espressa come percentuale del totale disponibile. In questo caso, accade che il processo che sta utilizzando maggiore CPU è anche quello che sta utilizzando più memoria, il che non è inusuale. Ma se vogliamo vedere i processi allineati per ordine di memoria consumata? Bene, come ho detto sopra, il comando top è interattivo. Per cambiare l'ordinamento basta premere la lettera maiuscola O mentre il comando è in esecuzione in un terminale. Questo porterà a una utilissima schermata di opzioni di ordinamento (mostrata sotto). | Date – una data, ovviamente, per esempio 10-15-2012 (il formato esatto dipende dalla locazione) |
Linea 132: | Linea 83: |
Con questa schermata aperta possiamo premere la lettera minuscola n, dare quindi invio e ottenere l'elenco di ordine di percentuale di memoria utilizzata. Oppure possiamo ordinarlo per altri modi, se necessario. | Time- un valore di tempo come 09:15:25 |
Linea 134: | Linea 85: |
Di nuovo, è utile se notiamo che stiamo per esaurire la memoria e dobbiamo sapere cosa sta succedendo. Se un processo sta inaspettatamente utilizzando molta memoria, sarebbe sicuramente un'indicazione. Questo non implica che si ha una qualche idea di cosa sia il normale in queste situazioni. Il modo migliore di dare un senso a ciò è di controllare periodicamente e osservare cosa sta succedendo. Nel mio caso, ho portato la mia macchina a 16GB di RAM, così da non aspettarmi di vedere, nella maggior parte dei casi, percentuali di utilizzo molto alte. Per esempio, giusto ora ho i mio pannello inferiore pieno di icone di programmi aperti (al momento sono 18) e un veloce controllo dell'output di top mostra che sto utilizzando il 35-40% del totale della memoria. | decimal - un numero reale composto da una parte intera e dalla parte decimale, es. 123.45 (il separatore della parte intera e decimale è specifico per la locazione). |
Linea 136: | Linea 87: |
Nella schermata, si vede un divoratore di memoria, ma ciò, di fatto, è previsto. Ho VirtualBox che esegue una macchina virtuale, configurata per usare 4GB di RAM (più altre risorse, ovviamente). Quindi, in questo caso, vedevo ciò che mi aspettavo di vedere. Ma se vedevo Firefox che utilizzava troppa memoria, avrei saputo che c'era un problema e l'avrei prontamente chiuso. | Per i nostri scopi useremo Integer e VarChar. |
Linea 138: | Linea 89: |
q per Quit | Creare le Tabelle |
Linea 140: | Linea 91: |
Se si ha top avviato nel proprio terminale, si potrebbe voler sapere come uscirne ed è semplice, basta premere la lettera q (per Quit) e si ritornerà al prompt del terminale. Si possono ottenere ulteriori informazioni in questi due modi: il metodo stile vecchia scuola è di digitare 'man top' nel terminale, ma il nuovo metodo, migliorato, è di digitare 'info top'. Tuttavia penso che otterrete lo stesso risultato con entrambi i modi. Il punto è che si tratta di un comando fertile con molte opzioni. | Base ha tre modi differenti per creare le tabelle: attraverso la creazione guidata di tabelle, attraverso la vista di progetto e con istruzioni SQL. La creazione guidata è buona solo per creare specifici tipi di tabelle presi da un elenco di nomi di campo predefiniti. Il metodo SQL richiede la conoscenza e la comprensione del linguaggio SQL ed è oltre lo scopo di questo articolo. La vista di progettazione è di solito la scelta migliore e vi presenta una lista da riempire per creare la vostra tabella. Per creare le nostre tabelle per questo progetto useremo la vista di progettazione . |
Linea 142: | Linea 93: |
Interpretazione dei Dati di Sistema | Cominceremo con la tabella Libri. Selezionate Tabelle dal pannello Database sulla sinistra. Nel pannello delle azioni, premete su Creare Tabella nella Vista di Progettazione. In cima avete etichette per ciascuno degli elementi di un campo: il Nome del Campo, il Tipo di Campo e la Descrizione. La Descrizione è opzionale ma è utile per prendere delle note su come è usato un campo. In basso vediamo le Proprietà del Campo. Questa sezione cambierà in funzione del tipo di campo che abbiamo selezionato. |
Linea 144: | Linea 95: |
Abbiamo visto alcuni concetti base del comando top e ci siamo concentrati nell'esaminare la lista dei processi per individuare e correggere eventuali errori. Questa è ancora una cosa molto utile, naturalmente, ma nell'output ci sono anche molti dati di sistema utili. Riprendiamo la schermata usata l'ultima volta per mostrare il risultato di questo comando (mostrata sotto). | Nel primo campo inserite il nome LibriID. Dal menu a tendina del Tipo di Campo selezionate Integer. Inserire una descrizione spetta a voi. Sotto le proprietà del campo cambiate AutoValue a Sì. Questo inserirà una icona nel riquadro a lato del record del campo mostrando che è l'indice (o la chiave) primario. Nella seconda riga digitate Titolo per il nome. Assegnate a questo un tipo VarChar. Ancora una volta, la descrizione spetta a voi. Nelle proprietà del campo lasciate la lunghezza a 100, il valore predefinito per VarChar. Il terzo campo è Pubblicato, con tipo VarChar. Cambiate la lunghezza nelle proprietà del campo a 12. Ho scelto VarChar piuttosto che una data perché vogliamo soltanto l'anno e se l'anno di pubblicazione di un libro è sconosciuto possiamo semplicemente inserire “Sconosciuto”. Premete sull'icona per salvare e Base vi chiederà di inserire il nome della tabella. Inserite Libri. |
Linea 146: | Linea 97: |
Ora vogliamo concentrarci su quei numeri in cima che stanno rappresentando alcuni dati di sistema molto utili. Quindi partiamo dall'alto (letteralmente): | Le nostre tabelle per Autori e Media sono create pressapoco nello stesso modo: per Autori create due campi: AutoriID , integer (AutoValue: Sì); e Nome, VarChar (lunghezza 50). Per Media, MediaID, integer (AutoValue: Sì); e Tipo , VarChar ( lunghezza 25). |
Linea 148: | Linea 99: |
Riga 1, la riga in cima | Le nostre due tabelle per le chiavi esterne richiedono un trattamento leggermente differente, in AutoriLibri create due campi interi di nome LibriID e AutoriID. Premete sul riquadro dell'icona a fianco del primo record. Tenendo premuto il tasto Shift, premete sul riquadro dell'icona del secondo. A questo punto dovreste avere entrambi i record selezionati. Premete sul pulsante destro sul riquadro dell'icona e selezionate Chiave Primaria dal menu contestuale. Questo crea una chiave combinata. I due valori insieme creano una chiave primaria, che identifica univocamente ciascun record della tabella. Per la tabella LibriMedia, create due campi interi dal nome LibriID e MediaID. Selezionate entrambi i campi, premete sul pulsante destro e selezionate Chiave Primaria. |
Linea 150: | Linea 101: |
Sulla prima riga (sopra) abbiamo il tempo di funzionamento. Effettivamente, questa è un informazione che si potrebbe ottenere usando il comando uptime così: | Creare Relazioni |
Linea 152: | Linea 103: |
Quindi questo è un indizio che il comando top è una raccolta di informazioni disponibili singolarmente da altri comandi, riuniti in un unico pacchetto di bontà impressionante. Ciò è molto conveniente. | Una volta che abbiamo definito tutte le nostre tabelle, possiamo creare le relazioni che collegano tutto insieme. Creeremo relazioni tra le nostre tre tabelle principali e le nostre tabelle con le chiavi esterne. La direzione in cui trascinate i campi è importante, per cui fate molta attenzione al modo in cui lo fate. |
Linea 154: | Linea 105: |
Così siamo in grado di vedere che sono le 15:52:05 e che il computer è in piedi da 17 giorni. Ci sono due utenti in questo momento, il che è normale. Uno di questi è root, ma non si dovrebbe mai usarlo per le attività ordinarie. È una pratica insicura e pericolosa. Mentre siamo registrati come root, ogni software avviato sul sistema ha il livello di privilegio di root. Il modo migliore è di creare un utente ordinario che non abbia un così ben alto livello di privilegio e registrarsi come tale utente. In questo caso l'utente è kevin. A proposito, Ubuntu rende molto difficile fare qualcosa che sia diversa da questa procedura. Se necessitate di diritti più alti, usate il comando sudo per darvi privilegi temporanei. | Per favviare la finestra di dialogo Progettazione Relazioni andate su Strumenti > Relazioni. Vi sarà presentata una lista di tabelle. Selezionate una tabella e premete Aggiungi per aggiungere la tabella alla Progettazione delle Relazioni. Per farla facile, aggiungete le tabelle nel seguente ordine: Autori, AutoriLibri, Libri, LibriMedia, Media. Una volta che tutte le tabelle sono state aggiunte, selezionate Chiudi. |
Linea 156: | Linea 107: |
L'ultima parte di questa riga è chiamata load. Questi tre numeri stanno fornendo il carico per i precedenti 1, 5 e 15 minuti. Ma cos'è il carico? È il numero medio di processi che sono eseguibili, o non si possono interrompere. Semplicemente, senza entrare troppo nel tecnico, è come viene occupata la CPU per la maggior parte del tempo. Ma il trucco è che non è regolato (normalizzato) per il numero di CPU. Ciò significa che un sistema a singola CPU con un carico di 1 viene caricato tutto il tempo. Ma sul mio sistema dual-core, non ho mai avuto 2, quindi sono a posto. Se si avesse un quad-core, il numero magico sarebbe 4 e cosi via. | Trascinate il campo LibriID in Libri su LibriID in AutoriLibri. Verrà fuori un avviso sulla Relazione. Sotto l'opzione Aggiorna clic su Aggiorna cascata e OK. Questo farà in modo di aggiornare il campo quando la tabella Libri si aggiorna. Trascinate l'AutoreID in Autori su AutoreID in LibriAutori: Selezionate Aggiorna cascata nell'avviso Relazione. Quindi trascinate il LibriID in Libri su LibriID in LibriMedia. Selezionate Aggiorna cascata. Infine trascinate MediaID in Media su MediaID in LibriMedia. Selezionate Aggiorna cascata. Il vostro progetto di relazione dovrebbe sembrare come quello nell'immagine sotto. |
Linea 158: | Linea 109: |
Riga 2, Attività | Con le nostre tabelle e relazioni appena create, siamo pronti a lavorare sulla creazione di moduli per l'inserimento dei dati. Li creeremo nel nostro prossimo How -To. Tutto insieme contribuirà a creare un sistema usabile per l'inserimento dei dati. |
Linea 160: | Linea 111: |
Non c'è nulla di interessante da vedere qui. Quell'ultima categoria, zombie, può sembrare per lo meno interessante, ma in realtà non lo è. I processi zombie sono avvii che hanno terminato l'esecuzione e saranno presto chiusi. | |
Linea 162: | Linea 112: |
Riga 3, CPU | |
Linea 164: | Linea 113: |
Questa è meritevole di un'occhiata o due. L'ultima volta abbiamo osservato i processi in fondo all'output del comando top per vedere se qualcuno di loro stava monopolizzando la situazione. Su questa riga, anziché guardare al singolo processo, osserveremo l'intero quadro di ciò che sta succedendo. E qui non dobbiamo preoccuparci di quanti core abbiamo, questi numeri aggregano tutti i dati di tutti i core. | |
Linea 166: | Linea 114: |
La prima statistica è %us, che in questo caso è 32.0%. Questa è la percentuale dei cicli di CPU impegnati dai processi dell'utente. Non significa necessariamente quelli che una persona ha avviato, possono essere processi lanciati da Apache, MySQL, ecc. Se questa percentuale è molto alta, può essere l'indicazione di un problema, poiché abbiamo altre richieste da considerare. Per esempio, la prossima statistica è %sy, che è la percentuale di cicli CPU impegnati dal kernel e da altri processi di sistema. Ovviamente dobbiamo avere a disposizione alcuni cicli per essi o non avremo un computer funzionante. La terza, %id, è la percentuale del tempo di inattività della CPU, più è elevata meglio è (entro limiti ragionevoli, dobbiamo di fatto usare il computer!). Fintanto che abbiamo una ragionevole disponibilità di tempo di inattività, non avremo verosimilmente problemi. Possiamo ricontrollarlo osservando la quarta statistica, %wa. È la percentuale di tempo di attesa di un processo per l'accesso alla CPU. In questo caso, .2% è buono. Non sarà piacevole vederlo troppo spesso a 0.0%, poiché, data la natura del calcolatore, i processi sono in competizione per il tempo di CPU, ma un elevato numero qui indicherebbe di sicuro un problema. Il resto delle statistiche si possono quasi ignorare, in quanto si occupano di questioni davvero oscure, ma si possono esaminare nella pagina di man per top. | La storia lavorativa, di programmazione e informatica di Elmer Perry include un Apple IIE, con alcuni Amiga, un generoso aiuto di DOS e Windows e una spolverata di Unix, il tutto ben mescolato con Linux e Ubuntu. |
Linea 168: | Linea 116: |
Righe 4 e 5, Memoria e Area di Swap | |
Linea 170: | Linea 117: |
Queste due righe è meglio trattarle congiuntamente, poiché è necessario combinare queste informazioni per raccontare una storia completa. Quello che dobbiamo sapere è quanta memoria è stata usata e quanta è disponibile, in ogni momento. È importante perché la carenza di RAM è la causa più comune di un computer lento e pigro. A volte può sembrare un problema completamente diverso, questo perché è importante osservare i dati reali. Per esempio, se notiamo che il disco rigido è costantemente 'rumoroso' (noto come thrashing) possiamo pensare di avere un problema di I/O al disco stesso, ma in realtà ciò è più comunemente causato da una mancanza di RAM. Quando non c'è abbastanza RAM per contenere tutto il codice dei programmi e i dati attualmente in uso, alcuni di essi vengono copiati sul disco rigido (detto paging) per liberare spazio per altro codice e dati. Lo spazio in cui tali dati sono copiati è chiamato area di swap. Per cui quando il disco rigido è costantemente rumoroso generalmente significa che il codice e i dati sono continuamente scritti e letti da e per l'area di swap e ulteriore RAM potrebbe eliminare il problema. | |
Linea 172: | Linea 118: |
Ora, una delle cose che dobbiamo capire per interpretare questi dati è che scrivere sul disco rigido e leggere dal medesimo è approssimativamente più lento di 4 mila milioni di volte rispetto allo scrivere e leggere sulla RAM. Quindi vogliamo minimizzare l'uso dell'area di swap per motivi prestazionali. Ma proprio perché la RAM è così tanto più veloce del disco rigido, il sistema operativo preferisce usarla ogni volta che è possibile. Un modo di accelerare le cose è di mantenere il codice in memoria finché non si chiude il programma. Dopotutto, possiamo riaprirlo, e rimuoverlo dalla RAM lo accelererebbe molto. Quindi il sistema operativo immagazzina nella RAM molto codice che non è effettivamente usato in maniera attiva. A causa di ciò, il resoconto sulla RAM utilizzata sarà simile a quando è sul punto di esaurirsi, anche se potrebbe non essere questo il caso. Dobbiamo osservare tutti i dati per valutarlo. | |
Linea 174: | Linea 119: |
In questo caso, abbiamo iniziato notando che la macchina ha 15.949.272k di RAM. In altre parole, 16GB, come sapevo perché era quella che ci avevo installato. E il numero successivo dice che praticamente tutti i 16GB sono stati utilizzati. Questo è un problema? Non proprio. Se osserviamo la seconda riga, vediamo che ci sono 6GB di spazio swap, ma sono a mala pena utilizzati (sto usando poco meno di 2MB di RAM). E l'ultimo numero racconta la storia. Dei miei 16GB di RAM, una buona metà, 8GB, è stata usata per depositarci il codice. Se volessi aprire un programma che era già in memoria, grande, il codice è già li e si aprirà velocemente. Se voglio aprire qualche altro programma, il sistema operativo cancellerà parte del codice depositato in memoria per liberare spazio, quindi non c'è problema. | |
Linea 176: | Linea 120: |
Htop, l'alternativa | |
Linea 178: | Linea 121: |
In realtà preferisco top, ma ad alcune persone piace di più htop e penso che vedrete il perché. Per alcune cose è più facile lavorarci, in particolare se si necessita di fare alcune operazioni inerenti ai processi. Notate però che su molti sistemi non lo si trova già installato, per cui lo si deve prima installare. Su macchine Ubuntu, si installa con sudo apt-get install htop Innanzitutto, si può notare che presenta quasi gli stessi dati sui singoli processi del comando top. I processi, per scelta predefinita, sono sempre elencati in ordine di utilizzo della CPU, si può ancora vedere l'ID del processo, gli utenti, le percentuali di utilizzo della CPU e della memoria, proprio come prima. Possiamo vedere il comando che ha lanciato il processo, invece del solo nome del programma. Diversamente da top, htop permette lo scorrimento orizzontale usando i tasti freccia. Su htop, abbiamo una interessante aggiunta, che è un visualizzatore grafico separato sull'utilizzo della CPU, per ciascuna di esse o per i core che si hanno, in questo caso 1 e 2 poiché si tratta di una macchina dual-core. E possiamo vedere l'utilizzo della memoria e dell'area di swap in una maniera che potremmo trovare facile da leggere. Tempo di funzionamento, carichi e attività sono mostrati in alto a destra. Il vero vantaggio di htop si ha quando si vuole far qualcosa su uno o più dei propri processi. Basta semplicemente usare i tasti freccia su e giù per evidenziare i processi e usare quindi uno dei tasti funzione mostrati sul fondo. Per esempio, se si evidenzia un processo e si preme poi F9 si ucciderà il processo. Premendo F7 (Nice-) si abbasserà il numero di precisione, incrementando così la priorità (si, non è intuitivo). E premendo F8 si ridurrà la priorità alzando il numero di precisione. Ma teniamo presente che per dare una priorità molto alta a un processo avremmo bisogno di accedere come root, magari utilizzando il comando sudo htop Personalmente, non ho molti motivi di pasticciarci, ma il peggio che potrebbe succedere è che potrebbe essere necessario riavviare il computer se davvero roviniamo tutto. Altri tasti funzione ci permettono di cambiare rapidamente l'ordinamento, il campo su cui ordinare e così via. Ricapitolando, penso che htop sia molto utile, ma tendo a usare molto più spesso top per due motivi. Il primo è che mi piacciono le più dettagliare informazioni che fornisce. Il secondo è che lo avrò disponibile su qualsiasi sistema davanti al quale probabilmente mi siedo, mentre htop necessiterà di essere installato e ciò vuol dire una connessione internet funzionante, che potrei anche non avere. Ma, in generale, questi due comandi fanno spesso le stesse cose e sono una cruciale aggiunta ai propri strumenti Linux. |
|
Linea 198: | Linea 124: |
Traduzione italiana
I database sono utilizzati per immagazzinare informazioni riguardo oggetti o dati. Nel precedente tutorial, abbiamo mappato come dovrebbe apparire il nostro database di libri. Abbiamo progettato tabelle per i nostri dati, e definito relazioni tra queste tabelle. Ora metteremo in atto la nostra pianificazione creando veramente il file del database, aggiungendo le tabelle e creando le relazioni.
Creare il file del database
Come ho menzionato prima Base non è un database ma una interfaccia per accedere e manipolare un file di database. Anche se è possibile connettersi a a molti differenti tipi di database, useremo il database di default per il nostro database di libri.
Per fare partire la creazione guidata del database, selezionate Database dalla pagina iniziale di LibreOffice o File > Nuovo > Database. La prima schermata della creazione guidata del database ci lascia scegliere se vogliamo aprire un database esistente o crearne uno di nuovo. Selezionate Creare un Nuovo Database e premete Prossimo.
La seconda schermata della creazione guidata ci chiederà se vogliamo registrare il database e che cosa vogliamo fare una volta che il database è stato creato. Registrare un database in LibreOffice lo rende disponibile a tutti i nostri documenti. Non ne abbiamo bisogno per il nostro database, così selezionate No – Non registrare il database. Selezionate Aprire il Database per modifica e premete fine. Libre Office aprirà una finestra di dialogo per definire una posizione e un nome per il database. Ho nominato semplicemente il file: libri.
Una volta che avete un nome e una posizione per il file di database, la finestra principale di Base si apre. In basso a sinistra, avete i differenti pezzi con cui potete realizzare un file di database. In cima a destra vi permette di accedere alle differenti azioni che potere intraprendere per ciascuna parte, e in basso a destra mostra gli oggetti già creati.
Tipi di campo
Prima che creiamo la nostra prima tabella, abbiamo bisogno di discutere alcuni dei tipi di campo comuni per un database. Quando voi selezionate un tipo per un campo, vi vengono presentate molte opzioni per il tipo. Molti dei tipi sono identici e sono qui per ragioni di compatibilità. I tipi più comuni sono:
Integer (ndt Intero) – un numero intero per esempio 123 VarChar – un stringa di caratteri di lunghezza variabile. Definirete la lunghezza massima per il VarChar. Date – una data, naturalmente, per esempio 10-15-2012 ( il formato esatto è specifico per la locazione) Time- un valore di tempo come 09:15:25 decimal - un numero reale composto da una parte intera e dalla parte frazionari, eg 123.45 (il separatore della parte intera e decimale è specifico per la locazione).
Per i nostri scopi useremo Integer e VarChar.
Creare le Tabelle
Base ha tre modi differenti per creare le tabelle: attraverso la creazione guidata di tabelle, attraverso la vista di progetto e con istruzioni SQL. La creazione guidata è buona solo per creare specifici tipi di tabelle presi da un elenco di nomi di campo predefiniti. Il metodo SQL richiede la conoscenza e la comprensione del linguaggio SQL ed è oltre lo scopo di questo articolo. La vista di progettazione è di solito la scelta migliore e vi presenta una lista che voi riempirete per creare la vostra tabella. Useremo la vista di progettazione per creare le nostre tabelle per questo progetto.
Cominceremo con la tabella Books (ndt Libri). Selezionate Tabelle dal pannello Database sulla sinistra. Nel pannello dei task, premete su Creare Tabella nella Vista di Progettazione. In cima avete etichette per ciascuno degli elementi di un campo: il Nome del Campo, il Tipo di Campo e la Descrizione. La Descrizione è opzionale ma è utile per prendere delle note su come è usato un campo. In basso vediamo le Proprietà del Campo. Questa sezione cambierà in funzione del tipo di campo che abbiamo selezionato.
Nel primo campo inserite il nome BookID. Dalla lista a selezione, selezionate Integer. Inserire una descrizione spetta a voi. Sotto le proprietà del campo cambiate AutoValue a Sì. Questo metterà una icona nel riquadro a lato del record del campo mostrando che è l'indice ( o la chiave ) primario. Nella seconda riga digitate Titolo per il nome. Assegnate a questo un tipo VarChar. Ancora la descrizione spetta a voi. Nelle proprietà del campo lasciate la lunghezza a 100, il valore predefinito per VarChar. Il terzo campo è Published (ndt Pubblicato) con un tipo VarChar. Cambiate la lunghezza nelle proprietà del campo a 12. Ho scelto VarChar piuttosto che una data perché vogliamo soltanto l'anno e se l'anno di pubblicazione di un libro è sconosciuto posso semplicemente inserire “Sconosciuto”. Premete sulla icona per salvare e Base vi chiederà di inserire il nome della tabella. Inserite Books.
Le nostre tabelle per Authors e Media sono create pressapoco nello stesso modo: per Authors create due campi: AuthorID , integer (AutoValue:Yes); e Name, VarChar (lunghezza 50). Per Media, MediaID, integer (AutoValue:Yes); e Type , VarChar ( lunghezza 25).
Le nostre due tabelle per le chiavi esterne richiedono un trattamento leggermente differente, create due campi interi di nome BookID e AuthordID. Premete sul riquadro dell'icona a fianco del primo record. Tenendo premuto il tasto Shift, premete sul riquadro dell'icona del secondo. A questo punto dovreste avere entrambi i record selezionati. Premete sul pulsante destro sul riquadro dell'icona e selezionate Chiave Primaria dal menu contestuale. Questo crea una chiave combinata. I due valori insieme creano una chiave primaria, che identifica univocamente ciascun record della tabella. Per la tabella BooksMedia, create due campi interi dal nome BookID e MediaID. Selezionate entrambi i campi, premete sul pulsante destro e selezionate Chiave Primaria.
Creare Relazioni
Una volta che abbiamo definito tutte le nostre tabelle, possiamo creare le relazioni che collegano tutto insieme. Creeremo relazioni tra le nostre tre tabelle principali e le nostre tabelle con le chiavi esterne. La direzione in cui trascinate i campi è importante, così fate molta attenzione al modo in cui lo fate.
Per far partire la finestra di dialogo Progettazione Relazioni andate a Strumenti > Relazioni. Vi saranno presentata una lista di tabelle. Selezionate una tabella e premete Aggiungi per aggiungere la tabella alla Progettazione delle Relazioni. Aggiungete le tabelle nel seguente ordine per farla facile: Authors, BooksAuthors, Books, BooksMedia, Media. Una volta che tutte le tabelle sono stte aggiunte, selezionate Close.
Trascinate il campo BookID in Books su BookId in BooksAuthors. Un dialogo Relazione spunta fuori. Sotto l'opzione Aggiorna pigliate Update cascade e OK. Questo farà in modo di aggiornare il cmpao quando la tabella Books si aggiorna. Trascinate l'AuthorID in Authors a AuthordID in BooksAuthors: Selezionate Update cascade nel dialogo Relazione. Quindi trasicnate il BookID in Books a BookID in BooksMedia. Selezionate Update cascade. Infine trascinate MediaID in Media a MediaID in BooksMedia. Selezionate Update cascade. Il vostro progetto di relazione dovrebbe sembrare come quello fotograto sotto.
Con le nostre tabelle e relazioni create, siamo pronti a lavorare sulla creazione di moduli per l'inserimento dei dati. Nel nostro prossimo How -To creeremo i moduli per l'inserimento dei dati. Tutto insieme contribuirà a creare un sistema usabile per l'inserimento dei dati.
Note alla traduzione
Revisione
HOW-TO – LibreOffice Parte 20 - Base
Scritto da Elmer Perry
I database sono utilizzati per immagazzinare informazioni riguardo oggetti o dati. Nel precedente tutorial, abbiamo mappato come dovrebbe apparire il nostro database di libri. Abbiamo progettato tabelle per i nostri dati, e definito relazioni tra queste tabelle. Ora metteremo in atto la nostra pianificazione creando veramente il file del database, aggiungendo le tabelle e creando le relazioni.
Creare il file del database
Come ho detto in precedenza, Base non è un database ma un'interfaccia per accedere e manipolare un file di database. Anche se è possibile connettersi a molti differenti tipi di database, useremo il database HSQL predefinito per il nostro database di libri.
Per fare partire la creazione guidata del database, selezionate Database dalla pagina iniziale di LibreOffice o File > Nuovo > Database. La prima schermata della creazione guidata del database ci lascia scegliere se aprire un database esistente o crearne uno nuovo. Selezionate Creare un Nuovo Database e premete Prossimo.
La seconda schermata della creazione guidata ci chiederà se vogliamo registrare il database e che cosa vogliamo fare una volta che il database è stato creato. Registrare un database in LibreOffice lo rende disponibile a tutti i nostri documenti. Non è necessario per il nostro database, per cui selezionate No – Non registrare il database. Selezionate Aprire il Database per modificare e premete Fine. LibreOffice aprirà una finestra di dialogo per definire una posizione e un nome per il database. Ho nominato il file semplicemente “libri”.
Una volta che avete un nome e una posizione per il file di database, la finestra principale di Base si apre. In basso a sinistra, avete i differenti pezzi con cui potete realizzare un file di database. In cima a destra potete accedere alle differenti azioni da intraprendere per ciascuna parte, e in basso a destra sono illustrati gli oggetti già creati.
Tipi di campo
Prima di creare la nostra prima tabella, abbiamo bisogno di discutere alcuni dei tipi di campo più comuni per un database. Quando selezionate un tipo per un campo, vi vengono presentate molte opzioni per tale tipo. Molti dei tipi sono identici, e questo per ragioni di compatibilità. I tipi più comuni sono:
Integer (ndt Intero) – un numero intero per esempio 123
VarChar – un stringa di caratteri di lunghezza variabile. Definirete la lunghezza massima per il VarChar.
Date – una data, ovviamente, per esempio 10-15-2012 (il formato esatto dipende dalla locazione)
Time- un valore di tempo come 09:15:25
decimal - un numero reale composto da una parte intera e dalla parte decimale, es. 123.45 (il separatore della parte intera e decimale è specifico per la locazione).
Per i nostri scopi useremo Integer e VarChar.
Creare le Tabelle
Base ha tre modi differenti per creare le tabelle: attraverso la creazione guidata di tabelle, attraverso la vista di progetto e con istruzioni SQL. La creazione guidata è buona solo per creare specifici tipi di tabelle presi da un elenco di nomi di campo predefiniti. Il metodo SQL richiede la conoscenza e la comprensione del linguaggio SQL ed è oltre lo scopo di questo articolo. La vista di progettazione è di solito la scelta migliore e vi presenta una lista da riempire per creare la vostra tabella. Per creare le nostre tabelle per questo progetto useremo la vista di progettazione .
Cominceremo con la tabella Libri. Selezionate Tabelle dal pannello Database sulla sinistra. Nel pannello delle azioni, premete su Creare Tabella nella Vista di Progettazione. In cima avete etichette per ciascuno degli elementi di un campo: il Nome del Campo, il Tipo di Campo e la Descrizione. La Descrizione è opzionale ma è utile per prendere delle note su come è usato un campo. In basso vediamo le Proprietà del Campo. Questa sezione cambierà in funzione del tipo di campo che abbiamo selezionato.
Nel primo campo inserite il nome LibriID. Dal menu a tendina del Tipo di Campo selezionate Integer. Inserire una descrizione spetta a voi. Sotto le proprietà del campo cambiate AutoValue a Sì. Questo inserirà una icona nel riquadro a lato del record del campo mostrando che è l'indice (o la chiave) primario. Nella seconda riga digitate Titolo per il nome. Assegnate a questo un tipo VarChar. Ancora una volta, la descrizione spetta a voi. Nelle proprietà del campo lasciate la lunghezza a 100, il valore predefinito per VarChar. Il terzo campo è Pubblicato, con tipo VarChar. Cambiate la lunghezza nelle proprietà del campo a 12. Ho scelto VarChar piuttosto che una data perché vogliamo soltanto l'anno e se l'anno di pubblicazione di un libro è sconosciuto possiamo semplicemente inserire “Sconosciuto”. Premete sull'icona per salvare e Base vi chiederà di inserire il nome della tabella. Inserite Libri.
Le nostre tabelle per Autori e Media sono create pressapoco nello stesso modo: per Autori create due campi: AutoriID , integer (AutoValue: Sì); e Nome, VarChar (lunghezza 50). Per Media, MediaID, integer (AutoValue: Sì); e Tipo , VarChar ( lunghezza 25).
Le nostre due tabelle per le chiavi esterne richiedono un trattamento leggermente differente, in AutoriLibri create due campi interi di nome LibriID e AutoriID. Premete sul riquadro dell'icona a fianco del primo record. Tenendo premuto il tasto Shift, premete sul riquadro dell'icona del secondo. A questo punto dovreste avere entrambi i record selezionati. Premete sul pulsante destro sul riquadro dell'icona e selezionate Chiave Primaria dal menu contestuale. Questo crea una chiave combinata. I due valori insieme creano una chiave primaria, che identifica univocamente ciascun record della tabella. Per la tabella LibriMedia, create due campi interi dal nome LibriID e MediaID. Selezionate entrambi i campi, premete sul pulsante destro e selezionate Chiave Primaria.
Creare Relazioni
Una volta che abbiamo definito tutte le nostre tabelle, possiamo creare le relazioni che collegano tutto insieme. Creeremo relazioni tra le nostre tre tabelle principali e le nostre tabelle con le chiavi esterne. La direzione in cui trascinate i campi è importante, per cui fate molta attenzione al modo in cui lo fate.
Per favviare la finestra di dialogo Progettazione Relazioni andate su Strumenti > Relazioni. Vi sarà presentata una lista di tabelle. Selezionate una tabella e premete Aggiungi per aggiungere la tabella alla Progettazione delle Relazioni. Per farla facile, aggiungete le tabelle nel seguente ordine: Autori, AutoriLibri, Libri, LibriMedia, Media. Una volta che tutte le tabelle sono state aggiunte, selezionate Chiudi.
Trascinate il campo LibriID in Libri su LibriID in AutoriLibri. Verrà fuori un avviso sulla Relazione. Sotto l'opzione Aggiorna clic su Aggiorna cascata e OK. Questo farà in modo di aggiornare il campo quando la tabella Libri si aggiorna. Trascinate l'AutoreID in Autori su AutoreID in LibriAutori: Selezionate Aggiorna cascata nell'avviso Relazione. Quindi trascinate il LibriID in Libri su LibriID in LibriMedia. Selezionate Aggiorna cascata. Infine trascinate MediaID in Media su MediaID in LibriMedia. Selezionate Aggiorna cascata. Il vostro progetto di relazione dovrebbe sembrare come quello nell'immagine sotto.
Con le nostre tabelle e relazioni appena create, siamo pronti a lavorare sulla creazione di moduli per l'inserimento dei dati. Li creeremo nel nostro prossimo How -To. Tutto insieme contribuirà a creare un sistema usabile per l'inserimento dei dati.
La storia lavorativa, di programmazione e informatica di Elmer Perry include un Apple IIE, con alcuni Amiga, un generoso aiuto di DOS e Windows e una spolverata di Unix, il tutto ben mescolato con Linux e Ubuntu.
Note alla revisione