服务器
组成
- 硬件
- 软件
硬件
- cpu
- 内存
- 磁盘
- 网卡
软件
操作系统
- windows
- Linux
Linux本身就是一个多用户的系统
Linux作为服务器,无图像,所有的操作,都是通过命令
其他
- jre
- 容器
- 中间件
- docker
- 项目
服务
一个能力的输出体,一定会有端口
一台服务器,可以有多个服务
Linux发行版本
发行家族
- Debian
- Fedora
- SUSE
- 其他
同一发行家族的安装软件的工具是相同的
服务器架构演进第一阶段
服务器性能的提升
单一服务器架构
单一服务器架构
应用与数据库服务器分离
应用与数据库服务器分离
应用与数据库和文件服务器分离
应用与数据库和文件服务器分离
Linux基础
文件
代码语言:javascript复制$ yum install tree -y
重要文件
代码语言:javascript复制$ ls /
/boot
:linux的核心文件/bin
:存放系统中的可直接执行的命令/etc
:系统管理所需要的所有配置文件/usr
:unix shared resource 用户共享程序文件夹(类似windows中的program files目录)/opt
:optional给主机额外安装的软件目录(类似window的d盘)/home
:用户(非root)的根目录/sys
:系统文件,记录内核设备树/media
:自动识别的外设/mnt
:给用户临时挂载外部文件系统/proc
:process进程,虚拟文件系统,存储当前内核运行状态的特殊文件。这个内容不在磁盘上,而在内存,可以直接查看、修改系统信息/root
:超级权限者的主目录/run
:临时文件,系统启动的信息/srv
:服务启动后,需要提取的数据/var
:不断扩充的动力,如日志/tmp
:临时文件/dev
:device linux的外部设备
linux文件权限
查看文件权限信息
代码语言:javascript复制root@zx:/# ls -l
total 970036
lrwxrwxrwx 1 root root 7 Nov 20 2020 bin -> usr/bin
drwxr-xr-x 3 root root 4096 Nov 20 2020 boot
drwxr-xr-x 18 root root 3880 Dec 29 09:55 dev
drwxr-xr-x 92 root root 4096 Dec 29 11:39 etc
drwxr-xr-x 4 root root 4096 Jan 2 19:32 home
lrwxrwxrwx 1 root root 7 Nov 20 2020 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Nov 20 2020 lib32 -> usr/lib32
lrwxrwxrwx 1 root root 9 Nov 20 2020 lib64 -> usr/lib64
lrwxrwxrwx 1 root root 10 Nov 20 2020 libx32 -> usr/libx32
drwx------ 2 root root 16384 Nov 20 2020 lost found
drwxr-xr-x 4 root root 4096 Nov 20 2020 media
drwxr-xr-x 2 root root 4096 Apr 23 2020 mnt
drwxr-xr-x 3 root root 4096 Dec 29 10:06 opt
dr-xr-xr-x 120 root root 0 Dec 29 09:55 proc
drwx------ 6 root root 4096 Jan 2 19:45 root
drwxr-xr-x 23 root root 780 May 26 20:35 run
lrwxrwxrwx 1 root root 8 Nov 20 2020 sbin -> usr/sbin
drwxr-xr-x 2 root root 4096 Apr 23 2020 srv
-rw------- 1 root root 993249280 Nov 20 2020 swapfile
dr-xr-xr-x 13 root root 0 Dec 29 17:55 sys
drwxrwxrwt 11 root root 4096 May 26 20:35 tmp
drwxr-xr-x 14 root root 4096 Dec 29 10:02 usr
drwxr-xr-x 12 root root 4096 Dec 29 11:39 var
第1个
- d:目录
- l:链接
- -:文件
第2/3/4个
归属User权限
- r:读
- w:写
- x:执行
- -:无权限
第5/6/7个
归属Group权限
- r:读 = 4
- w:写 = 2
- x:执行 = 1
- -:无权限
第8/9/10个
其他Other用户权限
- r:读
- w:写
- x:执行
- -:无权限
一般使用chmod 777 文件名
来修改权限
- 7 = 4 2 1
第11个
文件硬链接数
第12个
归属用户Username 使用chown
修改
第13个
归属用户Groupname 使用chgrp
修改
第14个
文件大小
第15个
日期时间
最后1个
文件名称
安装命令
Fedora家族
- Fedora
- redhat
- centos
使用yum
或者dnf
使用rpm
包安装
rmp -ivh **.rpm 安装过程中显示正在安装的文件信息及安装进度
rpm -e pkgname 卸载软件,不要.rpm结尾
rpm -Uvh **.rpm 升级包
Debain家族
- debain
- ubuntu
使用apt
或apt-get
使用deb
包安装
sudo dpkg -i ***.deb 安装
sudo dpkg -r 卸载
Suse家族
- suse
使用zypper
或者yast
使用tar.gz文件
可以在任意linux发行版本中安装
- 解压
tar -xzvf **.tar.gz
- 进入解压的文件夹
cd **
- 检查编译
./configure
- 依赖gcc
yum install gcc -y
yum install make -y
sudo apt install build-essential
- 生成编译文件
make
- 安装
make install
- 卸载
make uninstall
查看帮助
man
显示系统手册页中的内容,会展示更多程序相关信息
help
获取某个命令的相关帮助
info
能提供比man更详细的帮助信息
top
默认间隔3秒刷新一次数据
代码语言:javascript复制top - 21:05:34 up 148 days, 11:09, 1 user, load average: 0.05, 0.04, 0.00
Tasks: 107 total, 1 running, 106 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 6.5 sy, 0.0 ni, 93.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3936.1 total, 144.1 free, 463.7 used, 3328.4 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 3192.1 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND
10776 root 20 0 66308 59924 6088 S 6.2 1.5 1955:39 gunicorn
3504779 root 10 -10 206656 113420 14868 S 6.2 2.8 1139:36 AliYunDun
1 root 20 0 168500 12776 8480 S 0.0 0.3 2:10.17 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:01.55 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-kblockd
代码语言:javascript复制top - 21:05:34 系统时间
up 148 days, 11:09, 当前系统启动了多长时间
1 user, 有多少个用户连接
load average: 0.05, 0.04, 0.00 系统负载值
第1个值:过去1分钟系统平均负载
第2个值:过去5分钟系统平均负载
第3个值:过去15分钟系统平均负载
按下1
可以查看cpu个数
top - 21:11:30 up 148 days, 11:15, 1 user, load average: 0.04, 0.03, 0.00
Tasks: 109 total, 1 running, 108 sleeping, 0 stopped, 0 zombie
%Cpu0 : 0.7 us, 0.0 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 1.0 us, 0.7 sy, 0.0 ni, 98.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3936.1 total, 145.5 free, 463.9 used, 3326.8 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 3191.9 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND
3504779 root 10 -10 206656 113420 14868 S 2.7 2.8 1139:45 AliYunDun
10776 root 20 0 66308 59924 6088 S 1.0 1.5 1955:43 gunicorn
4059383 root 20 0 805192 12000 7748 S 0.7 0.3 28:01.19 aliyun-service
6095 root 20 0 1021072 73124 28384 S 0.3 1.8 150:37.80 dockerd
- 一般来说,当系统负载值的第二个数值大于cpu核数的50%时,就认为系统负载比较高
- 当系统负载值的第一个数值很大,系统负载值的第二个数值很小。说明 现在系统的压力很大,可能还会继续上升
- 当系统负载值的第一个数值很小,系统负载值的第二个数值很大。说明系统正在释放压力,压力在逐渐减少。
load average
的计算:所以cpu使用时间之和 io使用时间之和 与 空闲时间之和 进行比较
Tasks: 107 total,
当前运行的进程数
按下H 会变成Threads: 236 total, 1 running, 235 sleeping, 0 stopped, 0 zombie 也就是当前运行的线程数
1 running, 正在运行
106 sleeping, 休息的
0 stopped, 停止的
0 zombie 僵尸进程
对应下面列中的S列:
R = running
S = sleeping
T = stopped
Z = zombie
代码语言:javascript复制%Cpu(s): CPU的使用情况
0.0 us, user space用户态cpu使用率
6.5 sy, sysctl 系统内核态cpu使用率
0.0 ni, nice 进程优先级切换cpu使用率
93.5 id, idolt 空闲
0.0 wa, wait等待
0.0 hi, hardware IRQ 硬中断
0.0 si, software IRQ 软中断(自主切换)
0.0 st 管理程序占用