Sono nuovo di Datastax cassandra. Durante la procedura di installazione di cassandra. Si consiglia di disattivare l'area di scambio del sistema operativo. Qualcuno fornisce la ragione per questo? Influirà su qualsiasi operazione a livello di sistema operativo?Perché lo swap deve essere disattivato in Datastax Cassandra?
risposta
In produzione, se il database utilizza lo scambio si avranno prestazioni pessime. In un anello di nodi di Cassandra, è meglio avere un nodo completamente inattivo piuttosto che lasciarlo zoppicare in scambio.
Il modo più semplice per assicurarsi di non passare mai allo scambio è semplicemente disattivarlo.
Se non si disabilita lo spazio di scambio, quando c'è un problema di memoria esaurita (quando lo spazio degli indirizzi è esaurito da cassandra mmap) a livello di sistema operativo, il sistema operativo cercherà di prendere una fetta della JVM che a sua volta in realtà cercando di cancellarlo tramite JNI per impostazione predefinita. Ora, la tua JVM viene rallentata man mano che una porzione della sua memoria heap viene persa. Ora GC si verificherà con l'operazione di scrittura di cassandra con meno memoria heap. Ciò porta le prestazioni generali del nodo Cassandra verso il basso e gradualmente lo uccide un punto nel quale non rimane più memoria a livello di SO.
Ecco perché ti suggeriscono due cose.
- Pacchetto jna.jar. Quando c'è un'operazione GC per mmap di cassandra, tutto è fatto dal codice java e non dalla parte JNI che viene spedita di default in cassandra. Quindi, evita una porzione di spazio di indirizzamento che JNI tenta di memorizzare in caso di operazioni native.
- Disabilita lo spazio di scambio. Un nodo Cassandra a basso rendimento rallenterà tutte le operazioni alla sua estremità client. Anche la replica su questo nodo verrà rallentata e quindi la lettura/scrittura apparirà più lenta di quanto si pensi. Un nodo deve morire e ricominciare quando si verifica una tale Memoria esaurita invece di prendere una porzione di JVM che rallenta l'intero processo.
- 1. Datastax Cassandra driver gettando CodecNotFoundException
- 2. Salvare valori null in Cassandra usando DataStax Spark Connector
- 3. Perché COBOL deve essere rientrato?
- 4. Perché constexpr deve essere statico?
- 5. Riutilizzo di PreparedStatement quando si utilizza il driver Cassandra Datastax?
- 6. Funzionamento di Datastax PreparatedStatements
- 7. Perché zumero_sync deve essere chiamato più volte?
- 8. Perché Intent servizio deve essere esplicita Intent
- 9. perché il delegato deve essere statico?
- 10. Perché un metodo ClassInitialize deve essere statico?
- 11. Perché un'interfaccia deve essere dichiarata di nuovo?
- 12. Rimuovere nucleo dal Datastax Solr
- 13. Datastax - Is PreparedStatement threadsafe?
- 14. Perché la variabile const non deve essere inizializzata in C?
- 15. Installazione del driver datastax php su Ubuntu
- 16. Perché viene disattivato Allocator :: reference?
- 17. Amazon SWF: almeno un lavoratore deve essere in esecuzione, perché?
- 18. Dichiarazione preparato con raccolta in clausola in Datastax Cassandra CQL conducente
- 19. Perché l'espressione per live deve essere valutata in jQuery
- 20. Come impostare la crittografia da client a nodo Cassandra con il driver Java DataStax?
- 21. "Target F # Runtime" disattivato - perché?
- 22. Web deve essere installato
- 23. Il seguente programma deve essere compilato secondo lo standard?
- 24. Il mandato standard enable_shared_from_this deve essere ereditato pubblicamente? Perché?
- 25. Perché la "più importante const" deve essere const?
- 26. Perché il mio metodo di overriding toString() deve essere pubblico?
- 27. Può autocapitalizzare essere disattivato con javascript in mobile safari?
- 28. Perché un riduttore Redux deve essere privo di effetti collaterali?
- 29. Questo codice deve essere in un documento.ready?
- 30. Incorporare Python su Windows: perché deve essere una DLL?