先準備好介質獨立部署,為方便快速部署,TelePG從1.5.3版本開始支持獨立部署功能。前期準備好介質,部署好zk,部署好mysql,借助TelePG控制臺進行部署。
通過集團云翼平臺直接訂購開通部署。
流復制是PostgreSQL 9.0 之后提供的新的傳遞 WAL 日志的方法。通過流復制,備庫不斷的從主庫同步相應的數據,并在備庫應用每個 WAL 文件 。主備模式推薦采用同步及潛在同步至少三節點的方式。
暫不支持自動建立database,需用戶手動建立database;支持自動建schema,用戶可不用手動建立schema。
內存分配
1.shared buffer pool,共享內存區域:供 PostgreSQL 服務器的所有進程使用。查看 shared_buffers 參數可以得到其設置值,建議設為內存的四分之一。
2.WAL buffer,預寫日志緩沖區:WAL 數據在寫入持久存儲之前的緩沖區,實例初始化時自動計算。
3.commit log,提交日志:所有事務的狀態日志,每個事務占用 2bit,最大512MB。
4.temp_buffers,臨時表緩沖區。
5.work_mem,工作內存:執行器在執行 sort、distinct 使用該區域對元組做排序,以及存儲 merge join、hash join 多表連接的數據,受最大連接數 max_connections 參數影響,建議用戶 session 級別進行設置,不要全局設置。
6.maintenance_work_mem,維護內存:某些類型的維護操作使用該區域(如vacuum、reindex)。
注意
按照小系統上云oltp應用保守設置,如果是大數據、數據倉庫,需要再此基礎按照測試重新優化調整較大參數值。
最大內存估算可參考如下表:
| 項目 | 值(MB) | 備注 |
| max_connections | 100 | 默認值為100 |
| work_mem | 4 | 默認值為4,最小值64KB |
| temp_buffers | 8 | 默認值為8,最小值800KB |
| shared_buffers | 128 | 默認值為8,最小值128KB |
| autovacuum_max_workers | 3 | 默認值為3 |
| maintenance_work_mem | 64 | 默認值為64MB,最小值為1MB。 |
| commit log | 48 | 每個事務2bits,autovacuum_freeze_max_age,默認為2億。 |
| max_connections*work_mem+max_connections*temp_buffers+shared_buffers+(autovacuum_max_workers*maintenance_work_mem)+clog | 1568 | wal buffers=-1 autovacuum_work_mem=-1 |
操作系統配置規范:
關閉 CPU 的節能模式。
關閉 NUMA。
建議使用 UTF8。
設置時間時區,建議主機工程師設置時間同步服務。
關閉其他服務:
systemctl stop tuned.service ktune.service
systemctl stop firewalld.service
systemctl stop postfix.service
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon.service
systemctl stop atd.service
systemctl stop bluetooth.service
systemctl stop wpa_supplicant.service
systemctl stop accounts-daemon.service
systemctl stop atd.service cups.service
systemctl stop postfix.service
systemctl stop ModemManager.service
systemctl stop debug-shell.service
systemctl stop rtkit-daemon.service
systemctl stop rpcbind.service
systemctl stop rngd.service
systemctl stop upower.service
systemctl stop rhsmcertd.service
systemctl stop rtkit-daemon.service
systemctl stop ModemManager.service
systemctl stop mcelog.service
systemctl stop colord.service
systemctl stop gdm.service
systemctl stop libstoragemgmt.service
systemctl stop ksmtuned.service
systemctl stop brltty.service
systemctl stop avahi-dnsconfd.service
數據庫高可用telePG
數據庫高可用telePG組件服務器,bios層需要關閉numa,關閉電源保護模式設置CPU為最大性能模式,讓其不降頻,cat /proc/cpuinfo | grep -E "model name|MHz"CPU型號、頻率一致。
| 參數類型 | 配置項 | 說明 |
| 操作系統內核參數配置 | sysctl vm.swappiness=5 | 5~10可選,但不可能阻止使用swap空間 |
| vm.min_free_kbytes=1024000 | 保證系統空閑內存維持在一定水平,同時保障內存管理low和min水位之間有足夠間隔 | |
| fs.aio-max-nr=40960000 | aio-max-nr =no of process per DB * no of databases * 4096 | |
| vm.dirty_ratio=20 vm.dirty_background_ratio=5 vm.dirty_writeback_centisecs=100 vm.dirty_expire_centisecs=500 | 可選,這個參數指定了當文件系統緩存臟頁數量達到系統內存百分之多少時(如5%)就會觸發pdflush/flush/kdmflush等后臺回寫進程運行,將一定緩存的臟頁異步地刷入外存 | |
| vm.vfs_cache_pressure=150 vm.swappiness=10 vm.min_free_kbytes=524288">> /etc/sysctl.d/99-sysctl.conf && sysctl --system | 可選,該參數表示內核回收用于directory和inode cache內存的傾向。缺省值100表示內核將根據pagecache和swapcache,把directory和inode cache保持在一個合理的百分比;降低該值低于100,將導致內核傾向于保留directory和inode cache;增加該值超過100,將導致內核傾向于回收directory和inode cache | |
| fs.file-max =76724200 | 該參數表示文件句柄的最大數量。文件句柄設置表示在linux系統中可以打開的文件數量 | |
| net.core.rmem_max = 4194304 | 最大的TCP數據接收緩沖 | |
| net.core.wmem_max = 2097152 | 最大的TCP數據發送緩沖 | |
| net.core.wmem_default = 262144 | 表示接收套接字緩沖區大小的缺省值(以字節為單位) | |
| net.core.rmem_default = 262144 | 表示發送套接字緩沖區大小的缺省值(以字節為單位) | |
| net.ipv4.tcp_syncookies = 1 | 當出現SYN等待隊列溢出時,啟用cookies來處理,可防范少量SYN攻擊,默認為0,表示關閉。 | |
| net.ipv4.tcp_tw_reuse = 1 | 允許將TIME-WAIT sockets重新用于新的TCP連接,默認為0,表示關閉 | |
| net.ipv4.tcp_tw_recycle = 1 | TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關閉,注意如果是nat-nat網絡,并與net.ipv4.tcp_timestamps = 1組合使用,則會出現時斷時續的情況 | |
| net.ipv4.tcp_fin_timeout = 30 | 修改系統默認的TIMEOUT 時間,避免服務器被大量的TIME_WAIT拖死 | |
| net.ipv4.ip_local_port_range = 9000 65000 | 如果連接數本身就很多,可以再優化一下TCP的可使用端口范圍,進一步提升服務器的并發能力,默認值是32768到61000 | |
| net.ipv4.tcp_max_syn_backlog = 8192 | SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網絡連接數 | |
| net.ipv4.tcp_max_tw_buckets = 5000 | 系統同時保持TIME_WAIT的最大數量,如果超過這個數字,TIME_WAIT將立刻被清除并打印警告信息,默認為180000 | |
| net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.all.arp_filter = 0 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.default.arp_filter = 0 net.ipv4.conf.lo.rp_filter = 0 net.ipv4.conf.lo.arp_filter = 0 net.ipv4.conf.em1.rp_filter = 0 net.ipv4.conf.em1.arp_filter = 0 net.ipv4.conf.em2.rp_filter = 0 net.ipv4.conf.em2.arp_filter = 0 | 網卡的設置 | |
| kernel.shmmni = 4096 | 這個內核參數用于設置系統范圍內共享內存段的最大數量。該參數的默認值是4096 。通常不需要更改kernel.sem = 250 32000 100 142 | |
| kernel.shmall =1073741824 | 該參數表示系統一次可以使用的共享內存總量(以頁為單位)。缺省值是2097152,可根據kernel.shmmax大小進行調整(kernel.shmmax/4*1024或者kernel.shmmax/8*1024) | |
| kernel.shmmax =4398046511104 | 該參數定義了共享內存段的最大尺寸(以字節為單位),此值默認為物理內存的一半 | |
| kernel.sysrq = 0 | 如無需調試系統排查問題,這個必須為0 |
| telepg的 limits.conf配置 | telepg soft nofile1048576 |
| telepg soft memlock -1 | |
| telepg hard memlock -1 | |
| telepg hard memlock 128849018880 | |
| telepg soft memlock 128849018880 | |
| telepg soft core6291456 | |
| telepg hard core6291456 | |
| telepg hard nproc131072 | |
| telepg soft nproc131072 | |
| telepg hard nofile 1048576 | |
| telepg hard stack 32768 | |
| telepg soft stack 10240 | |
| 禁用透明大頁 | echo never> /sys/kernel/mm/transparent_hugepage/enabled |
| echo never> /sys/kernel/mm/transparent_hugepage/defrag |
網絡連通性
確保組件和集群內的網絡聯通。
確保與相關聯組件的網絡連通。
確保防火墻關閉。