Linux-centos系统优化

Linux操作系统优化

一、开启VT和HT

Hyper-Threading(HT)
基本做云平台的,VT 和 HT 打开都是必须的,超线程技术(HT)就是利用特殊的硬件指令,把两个逻辑内核模拟

成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了 CPU 的闲置时 间,提高的 CPU 的运行效率。

二、关闭 CPU 节能

关闭节能后,对性能还是有所提升的,所以坚决调整成性能型(Performance)。当然也可以在操作系统级别进行

# 也可以在系统层面进行设置,配置方法如下:
for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do [ -f $CPUFREQ ] || continue; echo -n performance > $CPUFREQ; done 

三、yum源处理与常用软件包安装

# 一:先在测试环境,配置好yum源
默认国外的yum源(软件仓库)比较慢,所以换成国内的。
# 1.1、备份
[root@egon ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

# 1.2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/
[root@egon ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 1.3.添加epel源
[root@egon ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

# 二:然后执行yum update -y,以及安装常用软件包,然后执行部署,将部署过程中安装的包缓存本地
[root@egon ~]# yum update -y  # 刚装完系统后就立即执行,日后就不要轻易更新了
[root@egon ~]# yum -y install tree nmap sysstat lrzsz  telnet bash-completion bash-completion-extras vim  lsof  net-tools rsync ntpdate nfs-utils

# 三:将所有主机上的软件包汇总到一起,做成一个自己的yum源用来后期使用

四、规范系统主机名

hostnamectl set-hostname 主机名  # 主机名能够反映出主机的作用即可

五、添加hosts文件

# 编辑好之后,每台机器都发一份
vim /etc/hosts 
172.16.10.11 nc1 ceph-deploy
172.16.10.12 nc2
172.16.10.13 nc3
172.16.10.14 cs1
172.16.10.15 cs2
172.16.10.16 cs3
# 实现集群主机之间相互用主机名解析

六、关闭SELinux

	SELinux(Security-Enhanced Linux)是美国国家安全局(NSA)对于强制访问控制的实现,这个功能让系统管理员又爱又恨,这里我们还是把它给关闭了吧,至于安全问题,后面通过其他手段来解决,这也是大多数生产环境的做法,如果非要开启也是可以的。

#临时关闭
[root@egon ~]# setenforce  0

#永久关闭,修改完配置后重启主机
[root@egon ~]# sed 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

#检查结果
[root@egon ~]# grep "disabled" /etc/selinux/config

七、关闭防火墙

关闭防火墙的目的是为了让初学者学习更方便,将来在学了Firewalld技术后可再统一开启。 在企业环境中,一般只有配置外网IP的linux服务器才需要开启防火墙,但即使是有外网IP,对于高并发高流量的业务服务器仍是不能开的,因为会有较大性能损失,导致网站访问很慢,这种情况下只能在前端加更好的硬件防火墙了。

# 临时关闭
[root@egon ~]# systemctl  stop firewalld

# 设置开机不启动
[root@egon ~]# systemctl  disable  firewalld

八、配置系统时间

#给定时任务加上注释
[root@egon ~]# echo '#Timing synchronization time' >>/var/spool/cron/root

#定时任务
[root@egon ~]# echo '0 */1 * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' >>/var/spool/cron/root

#检查结果
[root@egon ~]# crontab -l

九、系统内核优化

1、ulimit命令介绍

我们可以ulimit命令对系统资源进行控制,选项如下

设置用户级所能打开的最大进程数目:-u选项

ulimit -u 3

设置用户级所能分配到的文件描述符数量:-n选项

ulimit -n 12

2、控制用户开启的最大进程数目

[root@egon ~~]# useradd egon
[root@egon ~~]# ulimit -u 3  # 每个用户能同时开启的最大进程数均只有3个
[root@egon ~~]# su - egon  # 切换到egon用户下,先执行了一个bash解释器进程,此外还能再开俩个
[egon@egon ~~]$ sleep 1000 &
[1] 1435
[egon@egon ~~]$ sleep 2000 &
[2] 1436
[egon@egon ~~]$ sleep 3000 &
-bash: fork: retry: 资源暂时不可用
-bash: fork: retry: 资源暂时不可用
-......

# 注意:
1、ulimit -u 3是限制每个用户能同时开启的最大进程数均只有3,而不是累计到一起总共有32、测试的时候sleep后的时间长一点,模拟出同时开启多个进程的效果,不然执行一条短命令很快就结束了

3、文件描述符

进程每打开一个文件,操作系统内核就会为该打开的文件分配一个编号(非负整数),该编号称之为文件描述符(File Descriptor)或者文件handle->也有人将其译为文件句柄

文件打开后的处理逻辑:
进程->文件描述符->操作系统内核->一个具体的文件
即内核(kernel)就是利用文件描述符(file descriptor)来访问文件

在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于UNIX、Linux这样的操作系统。

更多关于描述符的概念:https://www.cnblogs.com/linhaifeng/articles/13959014.html

进程每打开一个文件,操作系统就会为进程分配一个对应的文件描述符。文件描述符的数目是可以设置的,而一旦设置过小,进程会随着打开的文件数增多,因为达到了文件描述的上限而无法打开文件,从而抛出异常

# 文件描述符测试代码
[root@egon ~~]# cat test1.py 
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)

[root@egon ~~]# cat test2.py 
import os
import time
from threading import Thread

print(os.getpid())

def task(n):
    with open('egon%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)


# 测试
[root@egon ~~]# ulimit -n 12  # 最大的文件描述符数为12,每个用户级进程能打开的最大文件数均只有12个
[root@egon ~~]# python test1.py &
[1] 1263
[root@egon ~~]# 1263

[root@egon ~~]# python test2.py &
[2] 1266
[root@egon ~~]# 1266

# 在另外一个终端查看
[root@egon ~~]# ll /proc/1263/fd
总用量 0
lrwx------. 1 root root 64 1112 18:18 0 -
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值