day20 系统优化

1、yum源的优化

CentOS  base  epel

自建yum仓库
使用一个较为稳定的仓库
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo

[epel]
name="huawei epel repo"
baseurl="https://repo.huaweicloud.com/epel/7/x86_64/"
[gpgchech]=0

2、系统主机名

1.hostnamectl set-hostname linux
2.vim /etc/hostname

3、系统之间的域名解析

image-20211014151323302

vim /etc/hosts
  ip 主机名

4、关闭selinux和防火墙

1.临时关闭 setenforce 0
2.永久关闭 vim /etc/selinux/config

关闭防火墙:systemctl disable --now firewalld

5、配置ntp时间同步

1.安装ntp
    [root@localhost ~]# yum install ntpdate
2.同步时间
  ntpdate [时间服务器的地址]
    时间服务器的地址:ntp.aliyun.com  
                ntp.tuna.tsinghua.edu.cn  
[root@localhost ~]# ntpdate ntp.aliyun.com
14 Oct 18:36:34 ntpdate[1995]: step time server 203.107.6.88 offset 2228.276165 sec
[root@localhost ~]# date
Thu Oct 14 18:37:37 CST 2021

               
北斗---->原子钟

 

image-20211014184029698

 

6、ulimit:设置系统开启进程或者文件句柄数的(打开一个文件就是一个文件句柄)

ulimit -n

ulimit -u 

 

image-20211014184932478

 

-n:最大文件句柄数
-u:最大进程数

#永久修改文件句柄数 加上文件描述符与最大打开的进程数
cat >>/etc/security/limits.conf<<EOF
* soft nofile 102400
* hard nofile 102400
* soft nproc 102400
* hard nproc 102400
EOF
执行完加载一下:sysctl -p 然后重启:reboot生效
查看:ulimit -u   #102400
    ulimit -n    #102400
   
什么时候需要修改文件句柄数和进程数?
ELK   安装elasticsearch软件   ---> 需要打开文件句柄数65536     一般文件系统只有 65535 ,需要修改文件句柄数

import os
import time
from threading import Thread

print(os.getpid())

def task(n):
  with open('%s.txt' %n,mode='wt') as f1:
      time.sleep(1000)

if __name__ == "__main__":
   count=1
   while True:
      Thread(target=task,args=(count,)).start()
      count+=1
      time.sleep(3)


import os
import time
from threading import Thread

print(os.getpid())

def task(n):
  with open('shanhe%s.txt' %n,mode='wt') as f1:
      time.sleep(1000)

if __name__ == "__main__":
   count=1
   while True:
      Thread(target=task,args=(count,)).start()
      count+=1
      time.sleep(3)

 

image-20211014190024853

 

 

7、最大PID数

[root@localhost ~]# cat /proc/sys/kernel/pid_max
 131072
1.临时修改
  echo 111111 > /proc/sys/kernel/pid_max
2.永久修改
  echo "kernel.pid_max= 4194303" >> /etc/sysctl.conf
  sysctl -p  #测试,重启查看结果为4194303

8、调整内核参数(有利于操作系统更健康的运行)

cat >>/etc/sysctl.conf<<EOF
net.ipv4.tcp_fin_timeout = 2 #打开文件句柄的超出时间
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600 #设置系统心跳
net.ipv4.ip_local_port_range = 4000    65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
net.ipv4.ip_forward = 1    #打开操作系统网络转发功能
EOF

输入之后sysctl -p 查看
net.ipv4.ip_forward = 1 表示已经设置上了。(老师已经在init里设置好了)


9、NetworkManager

在CentOS系统上,目前有NetworkManager和network两种网络管理工具。如果两种都配置会引起冲突,而且NetworkManager在网络断开的时候,会清理路由,如果一些自定义的路由,没有加入到NetworkManager的配置文件中,路由就被清理掉,网络连接后需要自定义添加上去。
推荐使用network
[root@localhost ~]# systemctl disable --now NetworkManager   #禁用NetworkManager

10、禁ping——有利于提高操作系统的安全

禁止主机被ping :
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

11、用户提权sudo

当普通用户临时使用root用户的权限时使用
前提:这个用户必须在/etc/sudoer文件中添加权限
[root@localhost ~]# vim /etc/sudoers
在root下一行写入oldboy ALL=(ALL) ALL

[root@localhost ~]# su - oldboy
[oldboy@localhost tmp]$ sudo vim a.txt   #这时就可以提权编辑

12、字符处理

1.sort命令

sort是排序的命令,默认使用第一个字符进行排序

-n: 依照数值的大小进行排序
    cat 1.txt | sort -n
-r:   逆向排序
     cat 1.txt | sort -n -r
-k:   以某列进行排序(默认的分隔符是空格)
     cat 2.txt | sort -n -k2
-t:   指定分隔符,默认以空格为分割符
     cat 3.txt | sort -n -k2 -t:

2.uniq命令(去重,默认只去重相邻的数据)

cat 1.txt | sort -n | uniq
-c :在每列旁边显示该行重复出现的次数
     cat 1.txt | sort -n |uniq -c
-d:仅显示重复出现的行列
     cat 1.txt | sort -n |uniq -c -d
-u:仅显示出出现一次的行列(不重复的行列)
     cat 1.txt |sort -n |uniq -c -u

3.cut命令(分割字符)

cut分割字符有局限性,空格默认只识别1个
-d 指定字段的分隔符,默认的字段分隔符为“TAB”
  cut -d: -f1 3.txt
-f 显示指定字段的内容
   cut -d: -f3 /etc/passwd

4.tr命令(替换字符)

cat 3.txt |tr "123" "abc"

-d 删除字符
 cat 3.txt |tr -d "456"

5.wc命令(统计字符)

-c:统计文件的Bytes数
   cat 3.txt | wc -c
 
-l:统计文件的行数
   cat 3.txt | wc -l
 
-w :统计文件中单词的个数,默认以空白字符作为分隔符
   cat 3.txt | wc -w

13、时间

案列1.要求按照”2021-3-3 00:00:00“的格式打印当前时间
[root@localhost ~]# date +"%Y-%m-%d %H:%M:%S"
2021-10-14 16:24:40
[root@localhost ~]# date +"%F %H:%M:%S"
2021-10-14 16:28:21
[root@localhost ~]# date +"%F %T"
2021-10-14 16:28:48

案例2:设置本机的时间
date -s "2021-10-14 16:29:52"

cp /usr/share/zoneinfo/America/New_York /etc/localtime

 

 

 

 

 

 

 

 

posted @ 2021-10-14 20:55  甜甜de微笑  阅读(27)  评论(0编辑  收藏  举报