什么是计算机
计算机是电子数字计算机的简称,是一种自动的地,高速地进行数值运算和信息处理的电子设备。他主要由一些机械的,电子的器件组成,再配以适当的程序和数据。程序及数据输入后可以自动执行,用以解决某些实际问题。计算机中的各个物理实体为计算机硬件。程序和数据则称为计算机软件。
服务器硬件知识
1,PC服务器 (1u=111.125px)
品牌 DELL 、HP、IBM。
DELL品牌
2010年以前1u1850/19502u2850/2950
2010-2014 R410/R420 R610/R620
2,电源
人体的心脏,生产中一般核心业务用双电,如果是集群的情况可以例外。风扇选择方面铜的导热性能大于铝的
3,CPU
人体的大脑,负责运算和控制,是服务器性能核心部件。
生产:一般的企业,CPU颗数2-4颗,一颗CPU 双核-四核
虚拟化 宿主机: CPU颗数4-8颗,内存一般是49-128G。
4,内存:
CPU和磁盘之间的缓冲设备,临时的存储器。
一般程序运行的时候会被调度到内存中
进程:运行着的程序,进程会放在内存里。
程序:静态的,磁盘里。
计算机重启,内存的数据会释放掉
5,磁盘
永久存放数据的存储器。
3.5英寸的SAS(磁盘接口) SATA(磁盘接口)硬盘,机械读取(性能不高)。性能比内存差很多,所以工作中把大量的数据缓存到内存,是必备的解决方案。
此案接口:SAS SATA SSD
性能:SSD>SAS>SATA, 常规工作场景选SAS(15000转)SATA(7.2-1万转)线下的备份, 高并发用SSD
实例:淘宝网sata和ssd结合起来用 有些笔记本也是
6,光驱
企业应用:建议,淘汰光驱,为老板省钱。
U盘安装系统 网络安装(ftp,http),无人值守批量安装系统.
内存和磁盘的优化
企业案例:
1)们和极端案例:高并发,大数据量:会把数据先写到内存,然后再定时或者定量的写到磁盘,最终还是会加载到内存。
特点:
A.高并发的写入性能高。
B.可能会丢失一部分再内存中还没有来得及存入磁盘的数据。
2)中小企业案例:并发不是很大网站,会先把数据存放到磁盘,然后通过程序把数据读入到内存里,再对外提供访问服务。
由于90%的是网站都是读取为主,写入为辅,读写比例10:1,所以并发写入不是问题。
提醒:这里的内存和硬盘,可能是多台机器组成的
BIOS
常见的BIOS AwardAMIPhoenix
什么是操作系统
简单的理解,操作系统是沟通使用者和硬件之间传递信息的工作或程序、例如xp就是操作系统
操作系统(英文Operating System 简称OS)
系统核心(kernel)+上边LIB API+命令解释器shell=操作系统
Unix操作系统分类
FreeBSD(university of california,Berkeley)
AIX UNIX(IBM)(跑在小型机上的)
Solaris UNIX(SUN)SUN后来被甲骨文收购了
HP UNIX(HP)
Linux是一套免费使用和开放源代码并且可以自由传播的类Unix操作系统
1991年底,Linux Torvalds公开linux内核,不是我们现在使用linux系统的全部
1993年,linux1.0版发行,Linux转向GPL版权协议
GNU与GPL知识
自1984年起,Richard Stallman在软件开发团体中发起开发自由软件的运动,并获得麻省理工学院(MIT)的支持,这就导致了自由软件基金会FSF(Free Software Foundation)的建立和GNU项目的产生。
在其他人的协下,Richard Stallman创立了通用公共许可证GPL(General Public License),这对推动自由软件的发展起了至关重要的作用。
GPL许可核心思想是保证任何人有共享和修改自由软件的自由,任何人有权取得,修改和重新发布自由软件的源代码权利,但是要求把其他的改动发布出来。
FSF的主要项目是GNU(GNU`s Not Unix )。他的目标是建立可自由发布和可移植的类Unix操作系统。GNU项目本地产生的主要软件包括:Emacs编辑软件,Gcc编译软件,Bash命令解释程序和编程语言,一级Gawk(GNU`s awk)等等。
GNU
GNU是1984年1984年Richard Stallman 发起的自由软件运动,导致了FSF的诞生,从而有了GNU这个项目,开发一个操作系统以及各种程序组件,不是UNIX的操作系统,实际就是linux操作系统,GNU项目是linux内核之上的一些组件,不包括linux内核
GPL
GPL许可保证任何人有共享和修改自由软件的自由,任何人有权利,用、改、发布,GPL就是一个协议。
自由软件是什么?
自由软件是权利问题,不是价格问题,要理解这个概念,自由应该是言论自由中的自由,而不是免费啤酒中的免费
http://www.gnu.org/philosophy/free-sw.html
http://www.gnu.org/home.zh-cn.html
Linux的版本
Linux操作系统=内核+系统软件+应用程序(系统版本,内核版本)
常见的有Redhat、 Debian、 Fedora、Centos、Ubuntu
Centos(Community Enterprise Operating System)
以Redhat所发布的源代码重建符合GPL的linux,即Redhat Linux的再编译版
一般生产环境运维,都不使用桌面环境,甚至连桌面软件包都不安装,仅有一些特殊的软件安装需要安装桌面软件例如:Oracel的安装 Vnc的远程桌面
Linux应用分为三个领域
IT服务器系统应用领域、嵌入式系统应用领域、个人桌面系统应用领域
Linux远程链接工具 ssh 协议 SecrueCRT
英文翻译:
Options(选项)Session options(会话选项)Appearance(外观)
Normal font (字体大小)Narrow font (精确字体)Cursor (光标)
Use color (使用颜色)建议绿色 Cursor style (光标样式)
Short block (短块) blinking (闪烁)Terminal(终端)
Emulation(仿真)Scrollback buffer 回滚缓冲区
Log file (日志文件)Start log upon connect (在链接上启动记录)
Append to file(追加到文件 )
SecureFXP 传文件工具
调整背景颜色
创建日志 %S-%Y-%M-%D.log-------------会话名称-年-月-日
多页面
简单上传下载
Yum install lrzsz 在Dial-up Networking Support这个包组里
下载sz 文件名 -y覆盖
上传rz -y
只能上传下载文件
上传的文件可以是电脑里的任意文件
Ctrl+d 快速退出 (exit/quit)之后回车又连接回服务器
开机流程
http://rangochen.blog.51cto.com/2445286/1372328
http://raingolee.blog.51cto.com/6798135/1324991
https://jingyan.baidu.com/article/647f01159884e07f2148a8ef.html
Linux版本选择:
1,linux桌面系统,首选Ubuntu
2,服务器端的linux系统,首选RHEL或者CentOS,这两者中首选Centos,如果公司有钱不在乎软件成本也可以选择RHEL,RHEL有版权,Centos无版权
3,如果对安全要求很高,可以选择Debian或FreeBSD
4,新技术、新功能可以选择Fedora。是RHEL和Centos的一个测试版或预发布版
KVM Xen虚拟环境VMware workstations版本
www.centos.org
常规分区方案
/剩余硬盘大小
swap 1.5倍
/boot 100M
DB及存储
/data 剩余硬盘大小,放数据的
/ 50-200G
swap 1.5倍
/boot 100M
相当于windows不能只分C盘,还需要D,E,因为重装系统,数据会丢。
门户网站
/ 50-200G
swap 1.5倍
/boot 100M
剩下先不在进行分区,保留,将来哪个需求,就自己根据需求再分【灵活】
生产场景,对磁盘监控,剩余20%,报警短信,生产常用DELL硬件RAID,组合多块磁盘而不是LVM以及软RAID
系统安装
Base System1,Base
2,Compatibility libraries
3,Debugging Tools
4,Dial-up Networking Support
5,Hardware monitoring utilities
6,Performance Tools
Development1,Development tools
查看包组安装命令 yum grouplist
yum groupinstall “包组名称”:
yum groupinstall “Base”
yum groupinstall “Compatibility libraries”
yum groupinstall “DebugingTools”
yum groupinstall “Dial-upNetworking Support”
yum groupinstall “Hardwaremonitoring utilities”
yum groupinstall “PerformanceTools”
yum groupinstall “Developmenttools”
磁盘分区
磁盘分区有主分区、扩展分区、逻辑分区之分,一个硬盘最多有4个主分区。其中一个主分区的位置可以用一个扩展分区替换,而且一块盘只能有一个扩展分区,在这个扩展分区内可以划分多个逻辑分区
3p+e 2p+e p+e
最多只能有一个扩展分区,扩展分区不能用,必须在扩展分区上划分多个逻辑分区,然后格式化(创建文件系统),然后才能存数据或装系统
1.分区数字编号1-4只能留给主分区或扩展分区使用,逻辑分区(是在扩展分区基础上的)编号只能从5开始
2.IDE硬盘设备名以/dev/hda /dev/hdb
SCSI/SAS/STAT/USB接口设备名以/dev/sda /dev/sdb
swap交换分区的作用:虚拟内存,swap分区大小=1.5x物理内存容量(mem<8G),当内存大于16G,虚拟内存(8-16G即可)
实用工具everything搜索工具
HyperSnap画图工具
Keeppass 密码管理
win32文本比较工具
查看系统版本
[root@www ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)
查看内核版本
[root@www ~]# uname -a
Linux 123 2.6.32-642.el6.i686 #1 SMP Tue May 10 16:13:51 UTC 2016 i686 i686 i386 GNU/Linux
查看系统32位还是64位
[root@www ~]# getconf LONG_BIT
32
查看cpu信息
[root@123 ~]# cat /proc/cpuinfo
model name : Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz
查看内存信息
[root@123 ~]# cat /proc/meminfo
MemTotal: 4151496 kB
查看磁盘信息
[root@123 ~]# fdisk -l
Disk /dev/sda: 42.9 GB, 42949672960 bytes
配置优化防火墙后使生效
sysctl –p 配置优化防火墙生效/etc/sysctl.conf
Linux基础优化
1,配置网络
文件路径:/etc/sysconfig/network-scripts/ifcfg-eth0
[root@www ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0(网卡名称)
HWADDR=00:0C:29:6A:C2:6B(网卡MAC地址)
TYPE=Ethernet(网络类型)
UUID=8c03c2fe-b7d0-4e48-83c2-e934e1ee5df6(全局唯一标识符)
ONBOOT=yes(开机启动)
NM_CONTROLLED=yes(网络信息参数)
BOOTPROTO=static(静态和DHCP)
IPADDR=192.168.5.18(IP地址)
NETMASK=255.255.255.0(子网掩码)
GATEWAY=192.168.5.1(网关)
DNS1=192.168.5.1(DNS)
修改DNS
文件路径:/etc/resolv.conf
[root@www ~]# vi /etc/resolv.conf
nameserver 192.168.5.1
nameserver 144.0.0.74
修改主机名
文件路径:/etc/sysconfig/network
[root@www ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=www.lyl.zy
临时修改hostname+主机名
重启网卡:[root@www ~]# /etc/init.d/network restart
2,关闭SELinux,清空iptables
关闭SELinux
文件路径:/etc/selinux/config
[root@www ~]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled(关闭)
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
脚本:
[root@www ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@www ~]# grep SELINUX=disabled /etc/selinux/config
显示如下:SELINUX=disabled
临时关闭,查看
setenforce 0
getenforce
关闭iptables防火墙
[root@www ~]# iptables -F(清理防火墙规则)
[root@www ~]# iptables -L(查看防火墙规则)
/etc/init.d/iptables stop
3,不用root,添加普通用户,通过sudo授权管理
[root@www ~]# useradd newlinux(添加普通用户)
[root@www ~]# passwd newlinux(为普通用户设置密码)不让设置简单的比较麻烦所以不用
非交互式修改
[root@www ~]# echo "mima"|passwd --stdin newlinux
Changing password for user newlinux.
passwd: all authentication tokens updated successfully.
[root@www ~]# history -c(清空历史命令,安全)
设置新账号权限
文件路径:/etc/sudoers
[root@www ~]# visudo
90 ## Allow root to run any commands anywhere
91 root ALL=(ALL) ALL(默认)
92 haha ALL=(ALL) /usr/sbin/useradd,/usr/sbin/passwd(给予新账号命令权限中间用逗号隔开)
93 newlinux ALL=(ALL) NOPASSWD: ALL(给予新账号全部权限)
94%newlinuALL=(ALL) NOPASSWD: ALL(前面加%表示用户组)
4,简单安全防护
文件路径:/etc/ssh/sshd_config
Port 12345(修改远程端口)(13行左右)
PermitRootLogin no(禁止root账号登录)使用普通账号登录然后su - root切换(42)
UseDNS no(关闭DNS查询使ssh登录时候更顺畅)(122)
GSSAPLAuthentication no(交换秘钥,使ssh登录更顺畅)
重启服务/etc/init.d/sshd reload;/etc/init.d/sshd restart
具体分析:
http://oldboy.blog.51cto.com/2561410/1300964
5,更换yum为国内源
文件路径: /etc/yum.repos.d/CentOS-Base.repo
[root@www yum.repos.d]# cp CentOS-Base.repo CentOS-Base.repo.ori(备份源文件)
[root@www yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-6.repo(下载新源地址)
[root@www yum.repos.d]# cp Centos-6.repo CentOS-Base.repo (修改配置文件)
检查:
[root@www yum.repos.d]# yum clean all(清空yum缓存)
[root@www yum.repos.d]# yum makecache (建立yum缓存)
[root@www yum.repos.d]# yum updata(更新系统)
[root@www yum.repos.d]# yum upgrade(更新系统)
下载安装工具
[root@www yum.repos.d]# yum install tree telnet dos2unix sysstat lrzsz -y
6,精简开机自启动服务
调整开机模式
文件路径:/etc/inittab
[root@www ~]# vi /etc/inittab
26(行数) id:3:initdefault:(3为文本模式,5为桌面模式)
[root@www ~]# runlevel (查看当前运行模式)
N 3
[root@www ~]# init 5(切换模式)
关闭不必要的程序
[root@www ~]# ntsysv (直接进入服务画面)
[root@www ~]# setup 然后选择system service
四个必须的服务
1,sshd(远程服务)
2,rsyslog (日志服务)
3,network(网络服务)
4,crond(定时服务)
[root@www ~]# for abc in `chkconfig --list|grep "3:on"|awk '{print $1}'`;do chkconfig $abc off;done(关闭所有3登记启动项)
[root@www ~]# for abc in crond network sshd rsyslog;do chkconfig $abc on;done(开启四个必要的服务)
[root@www ~]# chkconfig --list|grep "3:on"(检查是否成功)
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network0: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,调整字符集
文件路径:/etc/sysconfig/i18n
[root@www ~]# cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
[root@www ~]# source /etc/sysconfig/i18n (运行生效)
临时调整:
[root@www ~]#(临时调整为英文,防止乱码)
9,服务器时间同步
[root@www ~]# ntpdate 144.0.0.74
10,加大服务器文件描述符
文件路径:/etc/security/limits.conf
# End of file
* - nofile 65535(调整为65535)
临时调整
[root@www ~]# ulimit -n (查看文件描述符数量)
65535
[root@www ~]# ulimit -HSn 65535(临时调整)
文件描述符
对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数,当打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。当读或写一个文件时,使用open或creat返回的文件描述符标识该文件,将其作为参数传递给read或write。
按照惯例,UNIX系统shell使用文件描述符0与进程的标准输入相关联,文件描述符1与标准输出相关联,文件描述符2与标准出错相关联。这是各种shell以及很多应用程序使用的惯例,而与UNIX内核无关,如果不遵守这种惯例,那么很多UNIX系统应用程序就不能正常工作。
11,隐藏开机版本和版本号
文件路径: /etc/issue 和/etc/redhat-release
清空文件
[root@www ~]# >/etc/issue
[root@www ~]# cat /dev/null >/etc/issue
[root@www ~]# >/etc/redhat-release
[root@www ~]# cat /dev/null >/etc/redhat-release
12,锁定关键的系统文件
[root@www ~]# chattr +i /etc/passwd
[root@www ~]# chattr +i /etc/inittab
[root@www ~]# chattr +i /etc/group
[root@www ~]# chattr +i /etc/shadow
[root@www ~]# chattr +i /etc/gshadow
13,内核参数优化
文件路径:/etc/sysctl.conf
centos5系统
[root@www ~]# vi /etc/sysctl.conf
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@www ~]# sysctl –p #使配置文件生效
由于centos6系统中的模块名不是ip_conntrack,而是nf_conntrack,所以在/etc/sysctl.conf优化时,需要把net.ipv4.netfilter.ip_conntrack_max这种老参数,改成net.netfilter.nf_conntrack_max这样才行
centos6
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
基础优化:
http://oldboy.blog.51cto.com/2561410/1336488
脚本优化:
http://chocolee.blog.51cto.com/8158455/1424587
其他优化:
http://oldboy.blog.51cto.com/2561410/1184139
http://oldboy.blog.51cto.com/blog/2561410/1184165
http://oldboy.blog.51cto.com/blog/2561410/1184177
http://oldboy.blog.51cto.com/blog/2561410/1184206
http://oldboy.blog.51cto.com/blog/2561410/1184228
网络状态优化:
http://yangrong.blog.51cto.com/6945369/1321594
更多优化细节:
http://oldboy.blog.51cto.com/2561410/988726