高寫入負載情況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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 當儲存EVA出現故障這種方法可高效解決資料丟失的情況
- 華納雲:如何在CentOS中檢視當前系統的負載情況CentOS負載
- 記一次nginx負載均衡配置情況Nginx負載
- Cassandra 概況
- 邏輯STANDBY負載高,應用緩慢的解決負載
- GitHub 近期頻繁當機?官方解釋:MySQL 負載過重GithubMySql負載
- 【知識分享】企業在什麼情況下需要做負載均衡負載
- 故障分析 | 大量短時程式導致 cpu 負載過高案例一則負載
- 阿里雲SLB負載均衡實踐,解決高併發響應慢阿里負載
- Latex請問這種情況怎麼解決
- Method breakpoints may dramatically slow down debugging情況解決
- ubuntu 下解決埠被佔用的情況Ubuntu
- 常見的死鎖情況及解決方法
- cpu負載是什麼意思 電腦cpu負載過高怎麼處理解決負載
- spring cloud 上雲的情況下,Ribbon 客戶端負載均衡 與 ALB 服務端負載均衡的選擇SpringCloud客戶端負載服務端
- 圖片無法載入的情況下的優化優化
- 如何解決linux系統平均負載高(load average)Linux負載
- 自己編寫的 Packagist 包如何在不釋出的情況下實現自動載入
- gpu負載99%正常嗎 gpu負載99%無異常需要解決嗎GPU負載
- keepalived高可用負載均衡負載
- Nginx負載均衡高可用Nginx負載
- ArcMap屬性表出現亂碼情況的解決
- 請問python遇到這種情況怎麼解決?Python
- 後端做了負載均衡的情況下,前端怎麼做分片上傳檔案?後端負載前端
- ubuntu檢視硬碟掛載情況Ubuntu硬碟
- Bumblebee之負載、限流和故障處理實踐負載
- steam磁碟寫入錯誤怎麼解決 steam磁碟寫入錯誤解決方法大全
- 求金字塔數字非負的情況總數
- 負載均衡詳解負載
- Jtti Web伺服器磁碟寫滿故障該怎麼解決JttiWeb伺服器
- CPU使用率低負載高負載
- 網路交換機常見故障及解決方法
- 【故障公告】Kubernetes 叢集節點當機造成部落格站點故障
- 【故障公告】redis 伺服器當機引發部落格站點故障Redis伺服器
- ORA-10873 故障解決
- Postgrsql 從節點當機,主節點執行DML語句出現等待情況SQL
- Oracle備庫當機啟動解決方案Oracle
- TextView未繪製情況下獲取其寬高TextView
- JS獲取元素寬高的兩種情況JS