CentOS (5.8/6.4) Liux 생산 환경 약간의 최적화 실전
많은 박우 들 의 업무 수 요 를 만족 시 키 기 위해 늙 은 남자 아이 Liux 교육 과정 은 2013 년 부터 Centos 5. X 와 Centos 6. X 에 동시에 적합 합 니 다!
CentOS 시스템 을 설치 한 후에 생산 환경 에 즉시 투입 하여 사용 할 수 없 기 때문에 흔히 우리 운영 자의 최 적 화 를 거 쳐 야 한다.리 눅 스 시스템 설치 후의 기초 최적화 작업 에 대해 몇 가지 설명 합 니 다.주의: 이번 최 적 화 는 모두 CentOS (5.8/6.4) 를 바탕 으로 합 니 다.
리 눅 스 시스템 설치 후의 기초 최적화 작업 에 대해 간단히 말씀 드 리 겠 습 니 다.
주의: 이번 최 적 화 는 모두 CentOS (5.8/6.4) 를 바탕 으로 합 니 다.5.8 과 6.4 두 가지 최적화 시의 작은 차이 에 대해 나 는 글 에서 언급 할 것 이다.
최적화 항목:
修改ip地址、网关、主机名、DNS等
关闭selinux,清空iptables
添加普通用户并进行sudo授权管理
更新yum源及必要软件安装
定时自动更新服务器时间
精简开机自启动服务
定时自动清理/var/spool/clientmqueue/目录垃圾文件,放置inode节点被占满
变更默认的ssh服务端口,禁止root用户远程连接
锁定关键文件系统
调整文件描述符大小
调整字符集,使其支持中文
去除系统及内核版本登录前的屏幕显示
内核参数优化
1. ip 주소, 게 이 트 웨 이, 호스트 이름, DNS 등 수정
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #网卡名字
BOOTPROTO=static #静态IP地址获取状态 如:DHCP表示自动获取IP地址
IPADDR=192.168.1.113 #IP地址
NETMASK=255.255.255.0 #子网掩码
ONBOOT=yes#引导时是否激活
GATEWAY=192.168.1.1
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.113
NETMASK=255.255.255.0
ONBOOT=yes
GATEWAY=192.168.1.1
[root@localhost ~]# vi /etc/sysconfig/network
HOSTNAME=c64 #修改主机名,重启生效
GATEWAY=192.168.1.1 #修改默认网关,如果上面eth0里面不配置网关的话,默认就使用这里的网关了。
[root@localhost ~]# cat /etc/sysconfig/network
HOSTNAME=c64
GATEWAY=192.168.1.1
我们也可以用 hostnamec64 来临时修改主机名,重新登录生效
修改DNS
[root@localhost ~]# vi /etc/resolv.conf #修改DNS信息
nameserver 114.114.114.114
nameserver 8.8.8.8
[root@localhost ~]# cat /etc/resolv.conf #查看修改后的DNS信息
nameserver 114.114.114.114
nameserver 8.8.8.8
[root@localhost ~]# service network restart #重启网卡,生效
重启网卡,也可以用下面的命令
[root@localhost ~]# /etc/init.d/network restart
2 、 selinux 를 닫 고 iptables 비우 기
selinux 닫 기
[root@c64 ~]# sed –i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config #修改配置文件则永久生效,但是必须要重启系统。
[root@c64 ~]# grep SELINUX=disabled /etc/selinux/config
SELINUX=disabled #查看更改后的结果
[root@c64 ~]# setenforce 0#临时生效命令
[root@c64 ~]# getenforce #查看selinux当前状态
Permissive
iptables 비우 기
[root@c64 ~]# iptables –F #清理防火墙规则
[root@c64 ~]# iptables –L #查看防火墙规则
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@c64 ~]#/etc/init.d/iptables save #保存防火墙配置信息
3、添加普通用户并进行
sudo
授权管理
[root@c64 ~]# useradd sunsky
[root@c64 ~]# echo "123456"|passwd --stdin sunsky&&history –c
[root@c64 ~]# visudo
在root ALL=(ALL) ALL此行下,添加如下内容
sunsky ALL=(ALL) ALL
4. yum 소스 업데이트 및 필요 소프트웨어 설치
yum 설치 소프트웨어, 기본적으로 rpm 패 키 지 를 가 져 오 는 경 로 는 외국 공식 소스 에서 국내 소스 로 바 꿉 니 다.
국내 에서 비교적 빠 른 두 사이트: 소 후 미 러 사이트, 왕 이 미 러 사이트
법 1: 설치 소스 프로필 을 스스로 설정 하고 Liux 에 업로드 합 니 다.
법 2: 미 러 사이트 에서 설정 한 yum 설치 소스 설정 파일 을 사용 합 니 다.
[root@c64 ~]# cd /etc/yum.repos.d/
[root@c64 yum.repos.d]# /bin/mv CentOS-Base.repo CentOS-Base.repo.bak
[root@c64 yum.repos.d]# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
다음은 다음 명령 을 실행 하여 yum 이 정상 인지 확인 합 니 다.
[root@c64 yum.repos.d]# yum clean all #清空yum缓存
[root@c64 yum.repos.d]# yum makecache #建立yum缓存
그리고 다음 명령 을 사용 하여 시스템 을 최신 으로 업데이트 합 니 다.
[root@c64 yum.repos.d]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* #导入签名KEY到RPM
[root@c64 yum.repos.d]# yum upgrade-y #更新系统内核到最新
이제 필요 한 소프트웨어 를 몇 개 설치 해 야 합 니 다.
[root@c64 yum.repos.d]# yum install lrzsz ntpdate sysstat -y
lrzsz 는 업로드 다운로드 소프트웨어 입 니 다.
sysstat 는 시스템 성능 과 효율 을 측정 하 는 도구 입 니 다.
5 、 정시 자동 업데이트 서버 시간
[root@c64 ~]# echo '*/5 * * * * /usr/sbin/ntpdate time.windows.com >/dev/null 2 >&1' >>/var/spool/cron/root
[root@c64 ~]# echo '*/10 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1' >>/var/spool/cron/root
알림: CentOS 6.4 시간 동기 화 명령 경로 가 다 릅 니 다.
6 은/usr/sbin/ntpdate
5 는/sbin/ntpdate
확장: 기계 수량 이 적 을 때 이상 의 정시 작업 동기 화 시간 이면 됩 니 다.만약 기기 의 수량 이 많 을 때, 네트워크 에 시간 동기 화 서버 NTP 를 따로 배치 할 수 있다. Server.여기 서 언급 만 하고 배 치 는 하지 않 습 니 다.
시간 동기 화 서버 구성 도:
6. 자동 시작 서비스 간소화
방금 설치 한 운영 체 제 는 crond, network, syslog, sshd 등 네 가지 서비스 만 유지 할 수 있 습 니 다.(Centos 6.4 는 rsyslog)
[root@c64 ~]# for sun in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $sun off;done
[root@c64 ~]# for sun in crond rsyslog sshd network;do chkconfig --level 3 $sun on;done
[root@c64 ~]# chkconfig --list|grep 3:on
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
7、定时自动清理
/var/spool/clientmqueue/
目录垃圾文件,放置inode节点被占满
本优化点,在6.4上可以忽略不需要操作即可!
[root@c64 ~]# mkdir /server/scripts -p
[root@c64 ~]# vi /server/scripts/spool_clean.sh
#!/bin/sh
find/var/spool/clientmqueue/-typef -mtime +30|xargsrm-f
그리고 이 를 crontab 정시 퀘 스 트 에 추가 합 니 다.
[root@c64 ~]# echo '*/30 * * * * /bin/sh /server/scripts/spool_clean.sh >/dev/null 2>&1'>>/var/spool/cron/root
8、变更默认的
ssh
服务端口,禁止root用户远程连接
[root@c64 ~]# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
[root@c64 ~]# vim /etc/ssh/sshd_config
Port 52113#ssh连接默认的端口
PermitRootLogin no #root用户***都知道,禁止它远程登录
PermitEmptyPasswords no #禁止空密码登录
UseDNS no #不使用DNS
[root@c64 ~]# /etc/init.d/sshd reload #从新加载配置
[root@c64 ~]# netstat -lnt #查看端口信息
[root@c64 ~]# lsof -i tcp:52113
9. 관건 적 인 파일 시스템 잠 금
[root@c64 ~]# chattr +i /etc/passwd
[root@c64 ~]# chattr +i /etc/inittab
[root@c64 ~]# chattr +i /etc/group
[root@c64 ~]# chattr +i /etc/shadow
[root@c64 ~]# chattr +i /etc/gshadow
chattr 명령 을 사용 한 후, 안전 을 위해 서 는 이름 을 바 꿔 야 합 니 다.
[root@c64 ~]# /bin/mv /usr/bin/chattr /usr/bin/任意名称
10. 파일 설명자 크기 조정
[root@localhost ~]# ulimit –n #查看文件描述符大小
1024
[root@localhost ~]# echo '* - nofile 65535' >> /etc/security/limits.conf
설정 이 완료 되면 다시 로그 인하 면 볼 수 있 습 니 다.
알림: ulimit 도 가능 합 니 다. -SHn 65535 명령 을/etc/rc. local 에 추가 한 후 다시 시작 할 때마다 유효 합 니 다.
[root@c64 ~]# cat >>/etc/rc.local<
扩展:文件描述符
文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于Unix、Linux这样的操作系统。
习惯上,标准输入(standard input)的文件描述符是 0,标准输出(standard output)是 1,标准错误(standard error)是 2。尽管这种习惯并非Unix内核的特性,但是因为一些 shell 和很多应用程序都使用这种习惯,因此,如果内核不遵循这种习惯的话,很多应用程序将不能使用。
11、调整字符集,使其支持中文
sed-i 's#LANG="en_US.UTF-8"#LANG="zh_CN.GB18030"#'/etc/sysconfig/i18n
source/etc/sysconfig/i18n
확장: 문자 집합 이 무엇 입 니까?
쉽게 말 하면 문자 기호 와 인 코딩 이다.자주 사용 하 는 문자 집합:
GBK 두 바이트 가 국제 표준 이 아니 라 지원 시스템 이 적지 않다.
UTF-8 부정 장 1 - 4 바이트 가 광범 위 하 게 지원 되 고 MYSQL 도 UTF - 8 을 사용 합 니 다.
12. 시스템 및 커 널 버 전 로그 인 전 화면 표시 제거[root@c64 ~]# >/etc/redhat-release
[root@c64 ~]# >/etc/issue
13. 커 널 파라미터 최적화
설명: 본 최 적 화 는 apache, nginx, squid 등 웹 응용 에 적합 하고 특수 한 업무 도 약간 조정 해 야 할 수 있 습 니 다.[root@c64 ~]# vi /etc/sysctl.conf
#by sun in 20131001
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
#一下参数是对iptables防火墙的优化,防火墙不开会有提示,可以忽略不理。
net.ipv4.ip_conntrack_max = 25000000
net.ipv4.netfilter.ip_conntrack_max = 25000000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
[root@localhost ~]# sysctl –p #使配置文件生效
알림: CentOS 6. X 시스템 의 모듈 이름 은 ip 가 아니 기 때 문 입 니 다.conntrack, nfconntrack, 그래서/etc/sysctl. conf 를 최적화 할 때 net. ipv4. netfilter. ipconntrack_max 이 오래된 매개 변 수 는 net. netfilter. nf 로 바 꿉 니 다.conntrack_max 이렇게 해 야 돼 요.
즉, 방화벽 에 대한 최적화 는 5.8 에서net.ipv4.ip_conntrack_max = 25000000
net.ipv4.netfilter.ip_conntrack_max = 25000000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
6.4 에 서 는...net.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_tcp_timeout_established = 180
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
또한 이 최적화 과정 에서 오류 가 발생 할 수 있다.
1, 5.8 버 전에 서error: "net.ipv4.ip_conntrack_max"is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_max"is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_established"is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait"is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait"is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait"is an unknown key
이 오 류 는 방화벽 이 열 리 지 않 았 거나 불 러 올 수 있 는 모듈 ip 을 자동 으로 처리 하 는 것 일 수 있 습 니 다.conntrack 은 자동 으로 불 러 오지 않 았 습 니 다. 해결 방법 은 두 가지 가 있 습 니 다. 하 나 는 방화벽 을 여 는 것 이 고, 다른 하 나 는 불 러 오 는 모듈 ip 을 자동 으로 처리 하 는 것 입 니 다.conntrack modprobe ip_conntrack
echo "modprobe ip_conntrack">> /etc/rc.local
2, 6.4 버 전에 서error: "net.nf_conntrack_max"isan unknown key
error: "net.netfilter.nf_conntrack_max"isan unknown key
error: "net.netfilter.nf_conntrack_tcp_timeout_established"isan unknown key
error: "net.netfilter.nf_conntrack_tcp_timeout_time_wait"isan unknown key
error: "net.netfilter.nf_conntrack_tcp_timeout_close_wait"isan unknown key
error: "net.netfilter.nf_conntrack_tcp_timeout_fin_wait"isan unknown key
이 오 류 는 방화벽 이 열 리 지 않 았 거나 불 러 올 수 있 는 모듈 ip 을 자동 으로 처리 하 는 것 일 수 있 습 니 다.conntrack 은 자동 으로 불 러 오지 않 았 습 니 다. 해결 방법 은 두 가지 가 있 습 니 다. 하 나 는 방화벽 을 여 는 것 이 고, 다른 하 나 는 불 러 오 는 모듈 ip 을 자동 으로 처리 하 는 것 입 니 다.conntrack modprobe nf_conntrack
echo "modprobe nf_conntrack">> /etc/rc.local
3, 6.4 버 전에 서error: "net.bridge.bridge-nf-call-ip6tables"isan unknown key
error: "net.bridge.bridge-nf-call-iptables"isan unknown key
error: "net.bridge.bridge-nf-call-arptables"isan unknown key
이 오 류 는 불 러 올 수 있 는 모듈 bridge 가 자동 으로 불 러 오지 않 았 기 때 문 입 니 다. 해결 방법 은 불 러 올 모듈 ip 을 자동 으로 처리 하 는 것 입 니 다.conntrack modprobe bridge
echo "modprobe bridge">> /etc/rc.local
여기까지 우리 리 눅 스 시스템 이 설 치 된 후의 기초 최 적 화 는 이미 조작 한 차이 가 많 지 않다. 정리 해 보면 모두 13 개의 최적화 점 이 우리 가 잘 알 아야 한다.그 다음 에 저 는 원 키 로 최 적 화 된 셸 스 크 립 트 를 만들어 서 여러분 과 함께 교류 하고 공부 하 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
독서 노트
문제1: 한 파일에 10000000개의 기록이 포함되어 있으며, 각 기록의 내용은 7자리의 정수이다.기록은 중복되지 않는다.파일 내용을 읽는 프로그램이 필요하고, 이 기록을 정렬한 후 파일을 출력해야 하며, 메모리는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.