• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

System-Optimization

linux 搞代码 3年前 (2022-03-03) 11次浏览 已收录 0个评论

==========

/etc/security/limits.conf 管制PAM用户的关上文件数,过程数等

查看用户的限度,ps aux|grep httpd,获取pid,而后cat /proc/$pid/limits


==========
敞开多余的服务 如:postfix

systemctl list-unit-files|grep 'enabled'




=============
/etc/sysctl.conf 管制linux零碎的参数

kernel.pid_max = 4194303 cat /proc/sys/kernel/pid_max
PID调配限度值。当内核下一个PID值达到这个值,它会回到最低的PID值。PID的最大的pid_max未调配,默认值为32768


fs.file-max = 999999
#零碎最大关上文件数

vm.swappiness = 0
#内存剩下多少应用虚拟内存(swap),0示意尽量不应用,10示意剩下10%时应用,即内存用到90%时应用。



net.ipv4.ip_local_port_range = 1024 65535
#示意用于向外连贯的端口范畴。缺省状况下很小:32768到61000,改为1024到65535。

net.ipv4.tcp_max_syn_backlog = 65535
#示意SYN队列长度,默认1024,改成65535,能够包容更多期待连贯的网络连接数。

linux零碎下内核参数优化,参数配置切当能够大大提高零碎的性能,也能够依据特定场景进行专门的优化,如TIME_WAIT过高,DDOS攻打等等。

依据TCP协定定义的3次握手断开连接规定,发动socket被动敞开的一方(服务器被动敞开连贯)。socket将进入TIME_WAIT状态,TIME_WAIT状态将继续2个MSL(Max Segment Lifetime),在Windows下默认为4分钟,即240秒,TIME_WAIT状态下的socket不能被回收应用,导致大量的TIME_WAIT,甚至比处于Established状态下的socket多的多,重大影响服务器的解决能力,甚至耗尽可用的socket,进行服务。

net.core.somaxconn = 65535
#Linux kernel参数,示意socket监听的backlog(监听队列)下限

net.ipv4.tcp_max_tw_buckets = 10000
#示意零碎同时放弃TIME_WAIT套接字的最大数量

net.ipv4.tcp_tw_reuse = 1
#示意开启重用。容许将TIME-WAIT sockets从新用于新的TCP连贯,默认为0,示意敞开;

net.ipv4.tcp_tw_recycle = 1
#示意开启TCP连贯中TIME-WAIT sockets的疾速回收,默认为0,示意敞开。

tcp_tw_recycle:
回收TIME_WAIT连贯
对客户端和服务器同时起作用,开启后在 3.5*RTO 内回收,RTO 200ms~ 120s 具体工夫视网络情况。RTO(Retransmission TimeOut)重传超时工夫.内网情况比tcp_tw_reuse 稍快,公网尤其挪动网络大多要比tcp_tw_reuse 慢,长处就是可能回收服务端的TIME_WAIT数量

然而,有个小坑:当多个客户端通过NAT形式联网并与服务端交互时,服务端看到的是同一个IP,也就是说对服务端而言这些客户端实际上等同于一个,惋惜因为这些客户端的工夫戳可能存在差别,于是乎从服务端的视角看,便可能呈现工夫戳错乱的景象,进而间接导致工夫戳小的数据包被抛弃。客户端处于NAT很常见,根本公司家庭网络都走NAT.

tcp_tw_reuse:
复用TIME_WAIT连贯 
只对客户端起作用,1秒后能力复用,当创立新连贯的时候,如果可能的话会思考复用相应的TIME_WAIT连贯。通常认为tcp_tw_reuse比tcp_tw_recycle平安一些,这是因为一来TIME_WAIT创立工夫必须超过一秒才可能会被复用;二来只有连贯的工夫戳是递增的时候才会被复用。


客户端tcp_tw_reuse
复用连贯管用, tcp_tw_recycle有用,然而客户端次要不是承受连贯,用途不大

服务器tcp_tw_recycle
回收连贯管用,tcp_tw_reuse复用有效。为了缩小TIME_WAIT留在服务器,能够在服务器开启KeepAlive,尽量不让服务器被动敞开,而是客户端被动敞开,缩小TIME_WAIT产生.




net.ipv4.tcp_fin_timeout = 30
#示意如果套接字由本端要求敞开,这个参数决定了它放弃在FIN-WAIT-2状态的工夫。# FIN_WAIT 超时工夫。


net.core.rmem_max = 16777216
#指定了接管套接字缓冲区大小的最大值(以字节为单位)。

net.core.wmem_max = 16777216
#定义发送窗口的最大大小;对于更大的 BDP 来说,这个大小也应该更大。

net.ipv4.tcp_syncookies = 1
#示意开启SYN Cookies。当呈现SYN期待队列溢出时,启用cookies来解决,可防备大量SYN攻打,默认为0,示意敞开;


centos 6

yum update -y

system time
<code>
yum install -y sysstat man wget screen ntp
chkconfig ntpd on
chkconfig acpid off; chkconfig ip6tables off; chkconfig netfs off; chkconfig postfix off; chkconfig udev-post off
chkconfig --list | grep 3:on
sed -i 's/"UTC"/"Asia\/Kuala_Lumpur"/' /etc/sysconfig/clock
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Kuala_Lumpur /etc/localtime
/usr/sbin/ntpdate 0.centos.pool.ntp.org
</code>

system optimization
<code>
echo "fs.file-max = 999999" >> /etc/sysctl.conf
echo "vm.swappiness = 0" >> /etc/sysctl.conf
echo "net.core.somaxconn = 1024" >> /etc/sysctl.conf
echo "net.ipv4.tcp_tw_recycle = 1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
echo "net.core.rmem_max = 8388608" >> /etc/sysctl.conf
echo "net.core.wmem_max = 8388608" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_syn_backlog = 4096" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 1024 65535" >> /etc/sysctl.conf
echo "net.netfilter.nf_conntrack_max= 1966080" >> /etc/sysctl.conf

sysctl -p

echo -e "*\t soft\t nofile\t 999999" >> /etc/security/limits.conf
echo -e "*\t hard\t nofile\t 999999" >> /etc/security/limits.conf
</code>

firewall
<code>
/sbin/iptables -F
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -s 10.1.0.0/16 -j ACCEPT
/sbin/iptables -A INPUT -s 10.0.1.0/24 -j ACCEPT
/sbin/iptables -A INPUT -s 192.168.10.0/24 -j ACCEPT
/sbin/iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
/sbin/iptables -A INPUT -m limit --limit 5/sec -j LOG --log-prefix "iptables: " --log-level 7
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT ACCEPT

/etc/init.d/iptables save
/etc/init.d/iptables restart
</code>

ssh
<code>
mkdir ~/.ssh/
vi ~/.ssh/authorized_keys

vi /etc/ssh/sshd_config
<code>
Port 22
ListenAddress 0.0.0.0
Protocol 2
SyslogFacility AUTHPRIV
LoginGraceTime 1m
StrictModes yes
MaxAuthTries 5
MaxSessions 5
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding no
PrintLastLog yes
TCPKeepAlive yes
MaxStartups 5
UseDNS no
Subsystem sftp /usr/libexec/openssh/sftp-server
AllowUsers root
</code>

    
/etc/init.d/sshd restart
restorecon -R -v *
restorecon reset /root/.ssh/authorized_keys context unconfined_u:object_r:admin_home_t:s0->unconfined_u:object_r:ssh_home_t:s0
</code>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:System-Optimization
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址