達夢數據庫優化(一)--操作系統參數調整
一、配置安裝數據庫用戶與屬主
#groupadd dinstall
#useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
#passwd dmdba
二、系統基礎參數配置
分為非系統服務進程和系統服務進程,配置的方法不一樣,不過建議2種方式都改
1、修改limits.conf
1.1 非系統服務進程相關參數優化
# vi /etc/security/limits.conf
#增加下述內容
dmdba soft nice 0
dmdba hard nice 0
dmdba soft as unlimited
dmdba hard as unlimited
dmdba soft fsize unlimited
dmdba hard fsize unlimited
dmdba soft nproc 131072
dmdba hard nproc 131072
dmdba soft nofile 131072
dmdba hard nofile 131072
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft data unlimited
dmdba hard data unlimited
dmdba soft memlock unlimited #數據庫創建線程失敗時的解決方案
dmdba hard memlock unlimited #數據庫創建線程失敗時的解決方案
參數解釋
# - core - limits the core file size (KB) 限制內核文件的大小。
# - data - max data size (KB) 最大數據大小
# - fsize - maximum filesize (KB) 最大文件大小
# - memlock - max locked-in-memory address space (KB) 最大鎖定內存地址空間
# - nofile - max number of open file descriptors 最大打開的文件數(以文件描敘符,file descripter計數)
# - rss - max resident set size (KB) 最大持久設置大小
# - stack - max stack size (KB) 最大棧大小
# - cpu - max CPU time (MIN) 最多CPU占用時間,單位為MIN分鍾
# - nproc - max number of processes 進程的最大數目
# - as - address space limit (KB) 地址空間限制
# - maxlogins - max number of logins for this user 此用戶允許登錄的最大數目
# - maxsyslogins - max number of logins on the system 系統最大同時在線用戶數
# - priority - the priority to run user process with 運行用戶進程的優先級
# - locks - max number of file locks the user can hold 用戶可以持有的文件鎖的最大數量
# - sigpending - max number of pending signals
# - msgqueue - max memory used by POSIX message queues (bytes)
# - nice - max nice priority allowed to raise to values: [-20, 19] max nice優先級允許提升到值
# - rtprio - max realtime pr iority
1. soft配置的值不能大於hard
2. root 的配置只能被 root 進行覆蓋,不受*的影響
如通過systemctl或service方式開機自動啟動的進程,需要修改system.conf,否則針對后台服務啟動的進程無效。
1.2 系統服務進程相關參數優化
# vim /etc/systemd/system.conf
DefaultLimitNOFILE=131072
DefaultLimitNPROC=131072
說明: #上述參數按需配置,無需的話用操作系統默認值即可
1.3 檢查是否生效
# cat /proc/1183/limits
2、配置SELinux
2.1 關閉selinux
方法1:編輯 /etc/selinux/config,設置SELINUX=disabled,重啟機器生效。
方法2:用root用戶登錄,輸入 setenforce 0 禁用selinux,並且立即生效,但重啟機器后失效。
2.2 說明
Enforcing, Permissive 和 Disable
1. Enforcing模式就是應用SELinux所設定的Policy,所有違反Policy的規則(Rules)都會被SELinux拒絕。
2. Permissive和Enforcing的區別就在於,前者還是會遵循SELinux的Policy,但是對於違反規則的操作只會予以記錄而並不會拒絕操作。
3. Disable 顧名思義就是完全禁用SELinux;
查看當前selinux的狀態:
/usr/sbin/sestatus -v ##如果SELinux status參數為enabled即為開啟狀態
達夢數據庫部署時,需要將SELinux完全禁用,如若需要設置為Permissive模式,則編輯文件設置SELINUX=Permissive,或者 setenforce Permissive
3、修改磁盤調度策略
達夢數據庫的穩定運行,需要將磁盤的調度算法設置為deadline,arm平台,必須要設置為deadline。但此處有個例外,如存儲為nvme等高性能的設備時,此類設備是IO調度算法只有none,則不用設置
設置方法(實時生效):
cat /sys/block/sda/queue/scheduler ##查看sda磁盤當前的io調度算法
echo deadline > /sys/block/sda/queue/scheduler ##設置sda磁盤的io調度算法為deadline
4、關閉防火牆
systemctl disable firewalld #centos7,開機禁止啟動防火牆
chkconfig iptables off #redhat6,開機禁止啟動防火牆
5、配置系統透明大頁
數據庫穩定運行,需要將操作系統的透明大頁關閉
#判斷當前系統透明大頁的狀態
cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
[always] madvise never
#禁用透明大頁
vi /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/
更多資訊請上達夢技術社區了解: https://eco.dameng.com