/etc/sysctl.conf配置文件


# vi /etc/sysctl.conf

# add by digoal.zhou
fs.aio-max-nr = 1048576
fs.file-max = 76724600
kernel.core_pattern= /data01/corefiles/core_%e_%u_%t_%s.%p         
# /data01/corefiles事先建好,權限777,如果是軟鏈接,對應的目錄修改為777
kernel.sem = 4096 2147483647 2147483646 512000    
# 信號量, ipcs -l 或 -u 查看,每16個進程一組,每組信號量需要17個信號量。
kernel.shmall = 107374182      
# 所有共享內存段相加大小限制(建議內存的80%)
kernel.shmmax = 274877906944   
# 最大單個共享內存段大小(建議為內存一半), >9.2的版本已大幅降低共享內存的使用
kernel.shmmni = 819200         
# 一共能生成多少共享內存段,每個PG數據庫集群至少2個共享內存段
net.core.netdev_max_backlog = 10000
net.core.rmem_default = 262144       
# The default setting of the socket receive buffer in bytes.
net.core.rmem_max = 4194304          
# The maximum receive socket buffer size in bytes
net.core.wmem_default = 262144       
# The default setting (in bytes) of the socket send buffer.
net.core.wmem_max = 4194304          
# The maximum send socket buffer size in bytes.
net.core.somaxconn = 4096
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_keepalive_intvl = 20
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_mem = 8388608 12582912 16777216
net.ipv4.tcp_fin_timeout = 5
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syncookies = 1    
# 開啟SYN Cookies。當出現SYN等待隊列溢出時,啟用cookie來處理,可防范少量的SYN攻擊
net.ipv4.tcp_timestamps = 1    
# 減少time_wait
net.ipv4.tcp_tw_recycle = 0    
# 如果=1則開啟TCP連接中TIME-WAIT套接字的快速回收,但是NAT環境可能導致連接失敗,建議服務端關閉它
net.ipv4.tcp_tw_reuse = 1      
# 開啟重用。允許將TIME-WAIT套接字重新用於新的TCP連接
net.ipv4.tcp_max_tw_buckets = 262144
net.ipv4.tcp_rmem = 8192 87380 16777216
net.ipv4.tcp_wmem = 8192 65536 16777216
net.nf_conntrack_max = 1200000
net.netfilter.nf_conntrack_max = 1200000
vm.dirty_background_bytes = 409600000       
#  系統臟頁到達這個值,系統后台刷臟頁調度進程 pdflush(或其他) 自動將(dirty_expire_centisecs/100)秒前的臟頁刷到磁盤
vm.dirty_expire_centisecs = 3000             
#  比這個值老的臟頁,將被刷到磁盤。3000表示30秒。
vm.dirty_ratio = 95                          
#  如果系統進程刷臟頁太慢,使得系統臟頁超過內存 95 % 時,則用戶進程如果有寫磁盤的操作(如fsync, fdatasync等調用),則需要主動把系統臟頁刷出。
#  有效防止用戶進程刷臟頁,在單機多實例,並且使用CGROUP限制單實例IOPS的情況下非常有效。  
vm.dirty_writeback_centisecs = 100            
#  pdflush(或其他)后台刷臟頁進程的喚醒間隔, 100表示1秒。
vm.mmap_min_addr = 65536
vm.overcommit_memory = 0     
#  在分配內存時,允許少量over malloc, 如果設置為 1, 則認為總是有足夠的內存,內存較少的測試環境可以使用 1 .  
vm.overcommit_ratio = 90     
#  當overcommit_memory = 2 時,用於參與計算允許指派的內存大小。
vm.swappiness = 0            
#  關閉交換分區
vm.zone_reclaim_mode = 0     
# 禁用 numa, 或者在vmlinux中禁止. 
net.ipv4.ip_local_port_range = 40000 65535    
# 本地自動分配的TCP, UDP端口號范圍
fs.nr_open=20480000
# 單個進程允許打開的文件句柄上限
net.ipv4.tcp_max_syn_backlog = 16384
net.core.somaxconn = 16384

# 以下參數請注意
# vm.extra_free_kbytes = 4096000
# vm.min_free_kbytes = 2097152 # vm.min_free_kbytes 建議每32G內存分配1G vm.min_free_kbytes
# 如果是小內存機器,以上兩個值不建議設置
# vm.nr_hugepages = 66536    
#  建議shared buffer設置超過64GB時 使用大頁,頁大小 /proc/meminfo Hugepagesize
# vm.lowmem_reserve_ratio = 1 1 1
# 對於內存大於64G時,建議設置,否則建議默認值 256 256 32

2. 生效配置

sysctl -p

 

配置OS資源限制

# vi /etc/security/limits.conf

# nofile超過1048576的話,一定要先將sysctl的fs.nr_open設置為更大的值,並生效后才能繼續設置nofile.

* soft    nofile  1024000
* hard    nofile  1024000
* soft    nproc   unlimited
* hard    nproc   unlimited
* soft    core    unlimited
* hard    core    unlimited
* soft    memlock unlimited
* hard    memlock unlimited

最好在關注一下/etc/security/limits.d目錄中的文件內容,會覆蓋limits.conf的配置。

已有進程的ulimit請查看/proc/pid/limits,例如

Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            10485760             unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             11286                11286                processes 
Max open files            1024                 4096                 files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       11286                11286                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us

如果你要啟動其他進程,建議退出SHELL再進一遍,確認ulimit環境配置已生效,再啟動。

 

配置OS防火牆

(建議按業務場景設置,我這里先清掉)

iptables -F

配置范例

# 私有網段
-A INPUT -s 192.168.0.0/16 -j ACCEPT
-A INPUT -s 10.0.0.0/8 -j ACCEPT
-A INPUT -s 172.16.0.0/16 -j ACCEPT

 

selinux

如果沒有這方面的需求,建議禁用

# vi /etc/sysconfig/selinux 

SELINUX=disabled
SELINUXTYPE=targeted

 

關閉不必要的OS服務

chkconfig --list|grep on  
關閉不必要的,例如 
chkconfig iscsi off

 

部署文件系統

注意SSD對齊,延長壽命,避免寫放大。

parted -s /dev/sda mklabel gpt
parted -s /dev/sda mkpart primary 1MiB 100%

格式化(如果你選擇ext4的話)

mkfs.ext4 /dev/sda1 -m 0 -O extent,uninit_bg -E lazy_itable_init=1 -T largefile -L u01

建議使用的ext4 mount選項

# vi /etc/fstab

LABEL=u01 /u01     ext4        defaults,noatime,nodiratime,nodelalloc,barrier=0,data=writeback    0 0

# mkdir /u01
# mount -a

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM