中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么提高cassandra讀存儲性能

發布時間:2021-03-05 14:22:12 來源:億速云 閱讀:477 作者:小新 欄目:數據庫

這篇文章給大家分享的是有關怎么提高cassandra讀存儲性能的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

  cassandra作為一個分布式的存儲性能,其特點是寫快讀慢。最近看了cassandra 1.0的文檔,發現1.0在讀性能上做了一些提高。用戶可以根據系統的要求,合理配置,從而提高讀的性能。下面億速云小編來講解下如何提高cassandra讀存儲性能?

  如何提高cassandra讀存儲性能

  1、禁用read repair

  每一次讀操作,cassandra都會在后臺進行read repair操作。如果只要求讀一個節點數據,cassandra在讀到一個節點后,就將結果返回客戶端,然后用read repair對其他的replicas進行同步(根據timestamp)。如果要求讀多個節點,那么cassandra就讀多個節點,然后根據timestamp進行比較,返回客戶端最新的數據,然后再調用read repair對其他節點進行同步。Read repair在后臺的操作,會占用一定的CPU和I/O,所以影響讀性能。要提高讀的性能,可以將read repair禁用掉,當然這會影響到一致性,但是對于節點比較穩定的系統,是可以考慮的。一種方法時用hinted off和nodel tool的node reapair定期對其進行同步,提高一致性。在cassandra1.0之前,禁用read repair需要修改代碼,新的cassandra1.0可以通過對每個讀操作調參(0到1),來設定read repair的機率。

  Compaction:使用Leveled compaction,并設定multithreaded_compaction,提高compaction的速度。

  在《cassandra中的壓縮策略》(http://www.cnblogs.com/marysam/articles/2266061.html)這個文章中,我介紹了cassandra1.0目前支持的兩種compaction策略---Tiered Compaction和Leveled Compaction。

  對于leveled compaction,可以對讀寫性能帶來提升。在cassandra1.0的文檔中說明,使用了leveled compaction,讀性能提高了400%。

  Leveled compaction能夠給讀性能帶來提高的原因是,leveled comapction中每一層都沒有重復的記錄,這樣保證了可以保證90%的讀都可以在一個sstable中完成。最壞的情況是一個記錄存在在每一層,但是這個時候10TB的數據也就7層,查7個SStable就可以了。

  2、Compression

  在http://www.datastax.com/dev/blog/whats-new-in-cassandra-1-0-compression中對cassandra 的compression做了介紹。這里說道,用compression,其讀的性能提高了25%-35%。

  Compression 之所以能夠提高讀的性能,是因為經過compression之后,每個節點能夠存儲更多的數據。同時Cassandra能在SStable index中夠迅速地定位到記錄的位置,然后解壓這些記錄進行操作。也就是說compression從兩方面提高了讀的速度:

  允許更多的數據在內存中對于不再內存中,但是經常訪問的數據,也能通過SStable index更快地訪問。

  如何提高cassandra讀存儲性能

  3、調整key cache和row cache的值

  Key cache:在內存中保存了記錄的位置。當一個row的column很大時,不適宜將row整個放在內存中,這個時候只要保存key的位置,也就是row的位置就可以。這樣可以讓程序快速定位到row并進行操作。對于有大量對row進行操作的系統,有很大的提高。默認時200,000。可以用nodetool cfstats或者時jconsole進行檢測,查看其命中率。

  Row cache:row cache 把整個row 的內容都放在內存中。適合的情況是,有一小部分hot data是經常反問的,或者要返回整個columns.在使用row cache時,用注意它對內存的影響。

  key cache 如果命中的話,會減少一次的查詢。Row cache如果命中的話,減少兩次的查詢,對于column的類型是圖片的系統,當然每個row是很大的,不能寄希望于row cache提高性能。但是我們可以把key cache提高,甚至設置成全部row的keys。這樣保證所有的讀操作,都能在key cache中命中。

  4、設置JVM heap的大小

  在cassandra 1.0中的,key cache時保存在JVM heap中,而Row cache是保存在電腦的內存中。如果想要提高row cache 的命中率,就要注意JVM heap大小的設置。既要保證JVM heap可以容納menber table, key cache以及其他大概1GB的使用,又要防止JVM heap過大,影響電腦中row cache的命中。

感謝各位的閱讀!關于“怎么提高cassandra讀存儲性能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

肇州县| 沾化县| 甘泉县| 石阡县| 揭东县| 三门县| 隆林| 理塘县| 黎川县| 梅河口市| 博白县| 枣庄市| 富宁县| 西贡区| 长泰县| 宜川县| 慈利县| 芦山县| 大连市| 任丘市| 芜湖县| 恩施市| 周口市| 永丰县| 昔阳县| 罗甸县| 萨迦县| 达尔| 镇康县| 山东省| 万年县| 乌什县| 眉山市| 巴彦县| 台东县| 衡阳市| 通渭县| 绥滨县| 资溪县| 佛山市| 金川县|