Greenplum優化--系統配置篇


目錄


硬件選型

  • 操作系統:不支持Windows,支持以下類UNIX操作系統,首選 RHEL 6。
    • SUSE Linux SLES 10.2 or higher;
    • CentOS 5.0 or higher;
    • RedHat Enterprise Linux 5.0 or higher;
    • Solaris x86 v10 update 7
  • 文件系統:
    • Linux下建議使用 XFS 文件系統,Solaris下建議使用ZFS
    • 對於Raid根據需求選擇硬Raid或軟Raid,若需更大空間,建議使用Raid,若對性能要求更高,可以選擇Raid 1+0。
  • CPU:
    • 若僅有少量進程運行在單個處理器上,則可以考慮配備更快的CPU(Intel是單核運算速度方面的領導者)。相反,若有大量併發進程運行在所有處理器上,則考慮配備更多的核(AMD在多核處理技術方面表現優異)。
    • 主機上CPU個數與Segment的對應關係:一個CPU配置一個主Segment。
  • 內存:在GP中,內存主要用於在SQL執行過程彙總保存中間結果(如排序、HashJoin等),若內存不夠,GP會選擇使用磁盤緩存數據,大大降低SQL執行的性能。
  • 網絡: GP建議爲Segment機器上的每一個主Segment配置一個千兆網卡,或者配置每臺機器都有萬兆網卡。

服務器系統參數配置

在Linux下,一般需要修改三種類型參數以使GP性能達到最優:共享內存、網絡、用戶限制。

  • 共享內存和網絡參數配置
服務器參數 默認值 最佳值
kernel.shmmax 5000000000 5000000000(不建議修改)
kernel.shmmni 4096 4096(不建議修改)
kernel.shmall 40000000000 40000000000 (不建議修改)
kernel.sem 250 5120000 100 20480 250 5120000 100 20480
kernel.sysrq 1 1
kernel.core_uses_pid 1 1
kernel.msgmnb 65536 65536
kernel.msgmax 65536 65536
kernel.msgmni 2048 2048
net.ipv4.tcp_syncookies 1 1
net.ipv4.ip_forward 0 0
net.ipv4.conf.default.accept_source_route 0 0
net.ipv4.tcp_tw_recycle 1 1
net.ipv4.tcp_max_syn_backlog 4096 4096
net.ipv4.conf.default.rp_filter 1 1
net.ipv4.conf.default.arp_filter 1 1
net.ipv4.conf.all.arp_filter 1 1
net.ipv4.ip_local_port_range 1025 65535 1025 65535
net.core.netdev_max_backlog 10000 10000
vm.overcommit_memory 2 唯一建議值–>2
  • 修改文件數限制

    • soft nofile 65536
    • hard nofile 65536
    • soft nproc 131072
    • hard nproc 131072
  • I/O參數配置

    • 包含數據目錄的設備的預讀大小應設爲 16384

      /sbin/blockdev --getra /dev/sdb16384
      
    • 包含數據目錄的設備的 I/O 調度算法設置爲 deadline。

      # cat /sys/block/sdb/queue/schedulernoop anticipatory [deadline] cfq
      
    • 通過 /etc/security/limits.conf 增大操作系統文件數和進程數。

      * soft nofile 65536* hard nofile 65536* soft nproc 131072* hard nproc 131072
      
    • 啓用core文件轉儲,並保存到已知位置。確保limits.conf中允許的core轉儲文件。

      kernel.core_pattern = /var/core/core.%h.%t# grep core /etc/security/limits.conf* soft core unlimited
      
  • 端口配置
    ip_local_port_range 的設置不要和 Greenplum 數據庫的端口範圍有衝突,例如:

    net.ipv4.ip_local_port_range = 3000
    65535PORT_BASE=2000MIRROR_PORT_BASE=2100REPLICATION_PORT_BASE=2200MIRROR_REPLICATION_PORT_BASE=2300
    

備份節點分配技巧

如果配置了mirror節點,其會分佈在所有Segment上,默認情況下同一臺服務器上主節點對應的所有備節點會分配在一個服務器上,這樣一旦一臺計算節點死機,所有備節點會在同一臺服務器上,致使性能降低50%。在初始化數據庫時,可以指定-S參數,將統一服務器上主節點對應的備節點打散指集羣不同服務器上。


參考

發佈了148 篇原創文章 · 獲贊 39 · 訪問量 69萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章