# 內存調優
調整內存的使用以及Spark應用程序的垃圾回收行為已經在[Spark優化指南](#)中詳細介紹。在這一節,我們重點介紹幾個強烈推薦的自定義選項,它們可以減少Spark Streaming應用程序垃圾回收的相關暫停,獲得更穩定的批處理時間。
- Default persistence level of DStreams:和RDDs不同的是,默認的持久化級別是序列化數據到內存中(DStream是`StorageLevel.MEMORY_ONLY_SER`,RDD是`StorageLevel.MEMORY_ONLY`)。即使保存數據為序列化形態會增加序列化/反序列化的開銷,但是可以明顯的減少垃圾回收的暫停。
- Clearing persistent RDDs:默認情況下,通過Spark內置策略(LUR),Spark Streaming生成的持久化RDD將會從內存中清理掉。如果spark.cleaner.ttl已經設置了,比這個時間存在更老的持久化RDD將會被定時的清理掉。正如前面提到的那樣,這個值需要根據Spark Streaming應用程序的操作小心設置。然而,可以設置配置選項`spark.streaming.unpersist`為true來更智能的去持久化(unpersist)RDD。這個配置使系統找出那些不需要經常保有的RDD,然后去持久化它們。這可以減少Spark RDD的內存使用,也可能改善垃圾回收的行為。
- Concurrent garbage collector:使用并發的標記-清除垃圾回收可以進一步減少垃圾回收的暫停時間。盡管并發的垃圾回收會減少系統的整體吞吐量,但是仍然推薦使用它以獲得更穩定的批處理時間。
- Introduction
- 快速上手
- Spark Shell
- 獨立應用程序
- 開始翻滾吧!
- 編程指南
- 引入 Spark
- 初始化 Spark
- Spark RDDs
- 并行集合
- 外部數據集
- RDD 操作
- RDD持久化
- 共享變量
- 從這里開始
- Spark Streaming
- 一個快速的例子
- 基本概念
- 關聯
- 初始化StreamingContext
- 離散流
- 輸入DStreams
- DStream中的轉換
- DStream的輸出操作
- 緩存或持久化
- Checkpointing
- 部署應用程序
- 監控應用程序
- 性能調優
- 減少批數據的執行時間
- 設置正確的批容量
- 內存調優
- 容錯語義
- Spark SQL
- 開始
- 數據源
- RDDs
- parquet文件
- JSON數據集
- Hive表
- 性能調優
- 其它SQL接口
- 編寫語言集成(Language-Integrated)的相關查詢
- Spark SQL數據類型
- GraphX編程指南
- 開始
- 屬性圖
- 圖操作符
- Pregel API
- 圖構造者
- 頂點和邊RDDs
- 圖算法
- 例子
- 提交應用程序
- 獨立運行Spark
- 在yarn上運行Spark
- Spark配置