高寫入負載情況cassandra當機故障解決
cassandra問題:
下面程式併發300執行緒向cassandra中灌資料:
python cassandra_stress.py -p 300 -n 1000000
資料估算:
三個節點,每個節點上期一個程式,每個程式300個併發執行緒向cassandra中寫資料,每個key的大小為1.916KB,Write Latency: 0.014 ms.
單個節點的資料寫入速率:
-->300*(1*1000/0.014)*1.916KB=39.16GB/s
結果資料蒐集,驗證:
當前的commitlog檔案大小:
/cassandra/data # du -sh *
34G commitlog
53G data
20K saved_caches
統計commitlog檔案數:
>cassandra/data/commitlog # ls -al |grep .log |grep -v .header|wc -l
268
引入的問題:
1.當大量的資料寫入請求寫記憶體,memtable不能及時的重新整理到sstable,導致commitlog不能清楚,不斷累積,一度達到268個,導致當前節點當機。
?明確一下具體的當機條件?
2.當commitlog目錄積累大量commitlog時啟動cassandra,報告如下虛擬記憶體錯誤。
--解決方法:
ulimit -v unlimited
# /opt/galax/gcs/watchdog/script/shell/Cassandra-oper.sh start
user is root
Begin to start cassandra service.
Begin to check system environment
Cassandra home is: /opt/cassandra
Java home is: /usr/java/jdk1.6.0_24
Check system environment end.
cassandra is starting...
Exception encountered during startup.
java.io.IOError: java.io.IOException: Map failed
at org.apache.cassandra.io.util.MmappedSegmentedFile$Builder.createSegments(MmappedSegmentedFile.java:172)
at org.apache.cassandra.io.util.MmappedSegmentedFile$Builder.complete(MmappedSegmentedFile.java:149)
at org.apache.cassandra.io.sstable.SSTableReader.load(SSTableReader.java:326)
at org.apache.cassandra.io.sstable.SSTableReader.open(SSTableReader.java:191)
at org.apache.cassandra.db.ColumnFamilyStore.(ColumnFamilyStore.java:226)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:472)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:453)
at org.apache.cassandra.db.Table.initCf(Table.java:317)
at org.apache.cassandra.db.Table.(Table.java:254)
at org.apache.cassandra.db.Table.open(Table.java:110)
at org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:160)
at org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:314)
at org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:79)
Caused by: java.io.IOException: Map failed
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:748)
at org.apache.cassandra.io.util.MmappedSegmentedFile$Builder.createSegments(MmappedSegmentedFile.java:164)
... 12 more
Caused by: java.lang.OutOfMemoryError: Map failed
at sun.nio.ch.FileChannelImpl.map0(Native Method)
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:745)
... 13 more
cassandra is starting...
Result:failed[@more@]
下面程式併發300執行緒向cassandra中灌資料:
python cassandra_stress.py -p 300 -n 1000000
資料估算:
三個節點,每個節點上期一個程式,每個程式300個併發執行緒向cassandra中寫資料,每個key的大小為1.916KB,Write Latency: 0.014 ms.
單個節點的資料寫入速率:
-->300*(1*1000/0.014)*1.916KB=39.16GB/s
結果資料蒐集,驗證:
當前的commitlog檔案大小:
/cassandra/data # du -sh *
34G commitlog
53G data
20K saved_caches
統計commitlog檔案數:
>cassandra/data/commitlog # ls -al |grep .log |grep -v .header|wc -l
268
引入的問題:
1.當大量的資料寫入請求寫記憶體,memtable不能及時的重新整理到sstable,導致commitlog不能清楚,不斷累積,一度達到268個,導致當前節點當機。
?明確一下具體的當機條件?
2.當commitlog目錄積累大量commitlog時啟動cassandra,報告如下虛擬記憶體錯誤。
--解決方法:
ulimit -v unlimited
# /opt/galax/gcs/watchdog/script/shell/Cassandra-oper.sh start
user is root
Begin to start cassandra service.
Begin to check system environment
Cassandra home is: /opt/cassandra
Java home is: /usr/java/jdk1.6.0_24
Check system environment end.
cassandra is starting...
Exception encountered during startup.
java.io.IOError: java.io.IOException: Map failed
at org.apache.cassandra.io.util.MmappedSegmentedFile$Builder.createSegments(MmappedSegmentedFile.java:172)
at org.apache.cassandra.io.util.MmappedSegmentedFile$Builder.complete(MmappedSegmentedFile.java:149)
at org.apache.cassandra.io.sstable.SSTableReader.load(SSTableReader.java:326)
at org.apache.cassandra.io.sstable.SSTableReader.open(SSTableReader.java:191)
at org.apache.cassandra.db.ColumnFamilyStore.
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:472)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:453)
at org.apache.cassandra.db.Table.initCf(Table.java:317)
at org.apache.cassandra.db.Table.
at org.apache.cassandra.db.Table.open(Table.java:110)
at org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:160)
at org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:314)
at org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:79)
Caused by: java.io.IOException: Map failed
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:748)
at org.apache.cassandra.io.util.MmappedSegmentedFile$Builder.createSegments(MmappedSegmentedFile.java:164)
... 12 more
Caused by: java.lang.OutOfMemoryError: Map failed
at sun.nio.ch.FileChannelImpl.map0(Native Method)
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:745)
... 13 more
cassandra is starting...
Result:failed[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23937368/viewspace-1055368/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 時段負載情況Oracle負載
- 高併發高負載情況下常見的3種效能問題負載
- 華納雲:如何在CentOS中檢視當前系統的負載情況CentOS負載
- Oracle 查詢DB的負載情況Oracle負載
- 當儲存EVA出現故障這種方法可高效解決資料丟失的情況
- 記一次nginx負載均衡配置情況Nginx負載
- 在高併發、高負載的情況下,如何給表新增欄位並設定DEFAULT值?負載
- 使用shell指令碼檢視資料庫負載情況指令碼資料庫負載
- 邏輯STANDBY負載高,應用緩慢的解決負載
- GitHub 近期頻繁當機?官方解釋:MySQL 負載過重GithubMySql負載
- [轉]邏輯STANDBY負載高,應用緩慢的解決負載
- iostat命令——監控系統裝置的IO負載情況iOS負載
- 預設情況下RAC是按照SESSION數來負載均衡的 ?Session負載
- 不能開啟要寫入的檔案故障解決辦法
- 【知識分享】企業在什麼情況下需要做負載均衡負載
- 使用shell指令碼檢視資料庫負載情況(第二篇)指令碼資料庫負載
- Latex請問這種情況怎麼解決
- 常見的死鎖情況及解決方法
- ubuntu 下解決埠被佔用的情況Ubuntu
- 解決SQL*Plus中無法正常退格情況SQL
- 故障分析 | 大量短時程式導致 cpu 負載過高案例一則負載
- cpu負載是什麼意思 電腦cpu負載過高怎麼處理解決負載
- 圖片無法載入的情況下的優化優化
- 檢視mount掛載情況
- EMC 故障情況下ORACLE 救火行動(之二)Oracle
- 阿里雲SLB負載均衡實踐,解決高併發響應慢阿里負載
- Nginx負載均衡高可用Nginx負載
- Statspack報告分析—第二部分:Load Profile 負載情況負載
- 自己編寫的 Packagist 包如何在不釋出的情況下實現自動載入
- OpenSSH普通使用者無法登入的幾種情況的解決方法
- ArcMap屬性表出現亂碼情況的解決
- 解決 SQL Server 耗盡記憶體的情況SQLServer記憶體
- weblogic當機及解決Web
- MySQL主主+Keepalived+LVS高可用(三):單點寫入、讀負載均衡MySql負載
- 配置 RAC 負載均衡與故障轉移負載
- gpu負載99%正常嗎 gpu負載99%無異常需要解決嗎GPU負載
- 後端做了負載均衡的情況下,前端怎麼做分片上傳檔案?後端負載前端
- 當前EVA4400儲存分割槽情況