开启服务过多的缺点:
1、占用资源:cpu、内存、磁盘、网络带宽
2、安全性不高,端口容易受攻击。
3、开机慢。
2、iptables,network,ssh,rsyslog。
需要关闭的服务:
1、fprint(打印服务)、bluetooth、netfs、ntp视具体的需求而定
关闭多余的终端。
tty:真实的终端(字符下),pts:虚拟的桌面终端(图形界面)
1、占用资源:cpu、内存、磁盘、网络带宽
2、安全性不高,端口容易受攻击。
3、开机慢。
系统服务的优化
1、系统所提供的服务,http,ftp,dns等 系统安装时默认会安装服务,服务开启后肯定会占用一定的资源。一些不需要开启的服务,一定程度上导致了资源的浪费。
需要开启的服务:
需要开启的服务:
2、iptables,network,ssh,rsyslog。
需要关闭的服务:
1、fprint(打印服务)、bluetooth、netfs、ntp视具体的需求而定
关闭多余的终端。
tty:真实的终端(字符下),pts:虚拟的桌面终端(图形界面)
常见内核优化参数
1)vm虚拟内存的优化
echo '3' > /proc/sys/vm/drop_caches:清理系统的内存
vm.dirty_background_bytes:设置当脏数据达到一定字节x时就写入磁盘
vm.dirty_background_ratio:脏数据所占用内存的百分比。
vm.dirty_expire_centisecs:设置脏数据停留时间,超时就丢到磁盘中,单位为100/s。
vm.dirty_bytes:设置进程的脏数据的值,当内存使用量超过此值,就将数据写入磁盘。
vm.dirty_ratio:设置百分比,超出就写入磁盘。
vm.drop_caches:设定内存的清除方法。3表示清除内存。
vm.swappiness:是否使用交换空间,设置swap的运行级。
2)网络的BDP优化
网络的BDP:网络的时延,跟网络的传输距离和网络的带宽有关,BDP=Bandwith*RTT(往返时间)。
net.core.rmem_max:当了网络传输能力足够,但自身的接受发送数据有限,可以通过此文件,设置接受发送缓冲区的大小。
net.core.wmem_default:默认网络写缓冲区的大小。
net.core.wmem_max:默认写(发送)缓冲区的最大值
3)session会话优化(调整系统可打开的文件数和进程数)
#ulimit -a 列出相关选项
#ulimit -n 20000 设置用户可打开的文件
#ulimit -u 20000 设置用户可以启动的进程数
#vim /etc/security/limits.conf
mysql soft nofile 2000
mysql hard nofile 2500
mysql soft nofile 2000
mysql hard nofile 2500
4)tcp的链接优化
net.ipv4.tcp_fin_timeout:tcp链接终止的超时时间。
net.ipv4.tcp_tw_reuse:允许将time-wait状态的socket用于新的链接
net.ipv4.tcp_tw_recycle:是否快速回收属于time-wait状态的socket
net.ipv4.tcp_keepalive_time:发送keepalive包的时间周期。
监控工具:
#sar -P ALL 1 20 :分开显示cpu的各个核心的数据,
#sar -S 1 20 : 监视swap的使用情况
#sar -d 1 10 : 监视磁盘的io。tps(transfer per sec)每秒的传输率,
#sar -r 1 10 : 没有使用的内存页面和硬盘块。
#mpstat -P ALL 1 10 : 专注监控cpu
iostat:主要监控磁盘io使用情况
#iostat -t 2: 查看磁盘的基本的输入输出。间隔两秒。同时显示cpu和设备。
#iostat -p /dev/sda1 1 10 : 针对分区进行监控,1s一次,一共10次。
vmstat:
echo '3' > /proc/sys/vm/drop_caches:清理系统的内存
vm.dirty_background_bytes:设置当脏数据达到一定字节x时就写入磁盘
vm.dirty_background_ratio:脏数据所占用内存的百分比。
vm.dirty_expire_centisecs:设置脏数据停留时间,超时就丢到磁盘中,单位为100/s。
vm.dirty_bytes:设置进程的脏数据的值,当内存使用量超过此值,就将数据写入磁盘。
vm.dirty_ratio:设置百分比,超出就写入磁盘。
vm.drop_caches:设定内存的清除方法。3表示清除内存。
vm.swappiness:是否使用交换空间,设置swap的运行级。
2)网络的BDP优化
网络的BDP:网络的时延,跟网络的传输距离和网络的带宽有关,BDP=Bandwith*RTT(往返时间)。
net.core.rmem_max:当了网络传输能力足够,但自身的接受发送数据有限,可以通过此文件,设置接受发送缓冲区的大小。
net.core.wmem_default:默认网络写缓冲区的大小。
net.core.wmem_max:默认写(发送)缓冲区的最大值
3)session会话优化(调整系统可打开的文件数和进程数)
#ulimit -a 列出相关选项
#ulimit -n 20000 设置用户可打开的文件
#ulimit -u 20000 设置用户可以启动的进程数
#vim /etc/security/limits.conf
mysql soft nofile 2000
mysql hard nofile 2500
mysql soft nofile 2000
mysql hard nofile 2500
4)tcp的链接优化
net.ipv4.tcp_fin_timeout:tcp链接终止的超时时间。
net.ipv4.tcp_tw_reuse:允许将time-wait状态的socket用于新的链接
net.ipv4.tcp_tw_recycle:是否快速回收属于time-wait状态的socket
net.ipv4.tcp_keepalive_time:发送keepalive包的时间周期。
监控工具:
sar:
#sar 1 20 :每个1s显示一个次数据,显示20次。默认监控cpu。 sar用来实时监控系统的性能,用于检查系统过去的系统负载情况。收集并报告系统活动。
在命令行中,n和t参数组合起来定义采样的间隔和次数,t为采样间隔,n为采样次数,默认为1.-o file将命令的结果以二进制格式存放。
在命令行中,n和t参数组合起来定义采样的间隔和次数,t为采样间隔,n为采样次数,默认为1.-o file将命令的结果以二进制格式存放。
#sar -P ALL 1 20 :分开显示cpu的各个核心的数据,
#sar -S 1 20 : 监视swap的使用情况
#sar -d 1 10 : 监视磁盘的io。tps(transfer per sec)每秒的传输率,
#sar -r 1 10 : 没有使用的内存页面和硬盘块。
#sar -n DEV 1 10 : 监控网卡的数据传输率
mpstat: #-b:缓冲区使用情况
#-a:文件读写情况
#-a:文件读写情况
#mpstat -P ALL 1 10 : 专注监控cpu
iostat:主要监控磁盘io使用情况
#iostat -t 2: 查看磁盘的基本的输入输出。间隔两秒。同时显示cpu和设备。
#iostat -p /dev/sda1 1 10 : 针对分区进行监控,1s一次,一共10次。
vmstat:
#vmstat 1 5 : 查看虚拟内存的状态。r:运行的队列,d:等待的进程队列。数目不能超过cpu的数目。si、so交换分区的io状态。bi、bo磁盘block的io状态。
echo 3 > /proc/sys/vm/drop_cache 清空内存的缓存。 CPU瓶颈:当r展示了正在执行和等待cpu资源的任务个数。当这个值超过了cpu数目,就会出现cpu瓶颈。
CPU负荷:当us+sy接近100时,cpu正在接近满负荷工作,
CPU负荷:当us+sy接近100时,cpu正在接近满负荷工作,