0
点赞
收藏
分享

微信扫一扫

基础知识及其概念

前行的跋涉者 2022-03-17 阅读 77

基础知识及其概念

OSI七层模型

应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

典型协议

应用层协议

HTTP,HTTPS: 提供网站服务

FTP: 实现文件共享、传输

SMTP: 发送邮件

POP3: 接收邮件

IMAP4: 支持附件功能

SSH: 实现Linux主机加密、远程连接

DHCP: 动态主机配置协议

FTP: 文件传输协议

NFS: 网络文件系统

DNS:域名系统

传输层协议

TCP:传输控制协议

UDP:用户数据报协议

网络层协议

IP:网际互连协议

ICMP:检测网络通信(ping)

ARP:根据IP地址解析MAC地址

常见服务端口

20: FTP数据端口

21: FTP服务器开放端口,用于上传下载

22: ssh安全外壳协议

23: telnet远程终端协议

25: SMTP(简单邮件传输协议)

53: DNS(域名系统)

67: DHCP 端口发放IP

68: DHCP 发送超过和失败回应

80: HTTP超文本传输协议

123: NTP网络时间协议

443: HTTPS超文本传输安全协议

873: rsync文件传输服务

3306: MySQL数据库

9000: php-fpm

进程查看及其调度

进程是资源分配的最小单位

线程是CPU调度的最小单位

进程查看

查看当前终端的进程

[root@hosta ~]# ps
    PID TTY          TIME CMD
   6841 pts/0    00:00:00 bash
   7141 pts/0    00:00:00 ps

CMD

​ 进程名称

PID

​ 进程ID

查看所有进程

[root@hosta ~]# ps aux | less 
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.3 190976  3828 ?        Ss   09:04   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root           2  0.0  0.0      0     0 ?        S    09:04   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        S    09:04   0:00 [ksoftirqd/0]
root           5  0.0  0.0      0     0 ?        S<   09:04   0:00 [kworker/0:0H]

RSS 物理内存集

​ 进程所消耗物理内存大小

VSZ 虚拟内存集

​ 物理内存 + 共享内存 + swap(可能)

​ 共享内存(实现进程间通信)

[root@hosta ~]# ps -elf 
F S UID          PID    PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root           1       0  0  80   0 - 31360 ep_pol 11:01 ?        00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
1 S root           2       0  0  80   0 -     0 kthrea 11:01 ?        00:00:00 [kthreadd]
1 S root           3       2  0  80   0 -     0 smpboo 11:01 ?        00:00:00 [ksoftirqd/0]
1 S root           5       2  0  60 -20 -     0 worker 11:01 ?        00:00:00 [kworker/0:0H]
1 S root           6       2  0  80   0 -     0 worker 11:01 ?        00:00:00 [kworker/u256:0]
1 S root           7       2  0 -40   - -     0 smpboo 11:01 ?        00:00:00 [migration/0]
1 S root           8       2  0  80   0 -     0 rcu_gp 11:01 ?        00:00:00 [rcu_bh]

PPID

​ 父进程ID

查看内存容量

[root@hosta ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3932         111        3686          11         133        3614
Swap:          2047           0        2047

进程状态

CPU按时间切片调度执行多个任务/进程

R

​ 运行状态

S

​ 可中断的睡眠状态

D

​ 不可中断的睡眠状态

T

​ 终止状态

Z

​ 僵尸进程

​ 当进程被销毁时,父进程没有办法回收内存资源

孤儿进程/僵尸进程

1、孤儿进程:子进程执行完毕时发现父进程已退出,子进程变成为了孤儿进程。孤儿进程后期会被系统的 init 进程接管,并 wait/waitpid 其执行状态做回收处理。对系统并无危害。

2、僵尸进程:子进程执行完毕时发现父进程未退出,会向父进程发送 SIGCHLD 信号。但父进程没有使用 wait/waitpid 或其他方式处理 SIGCHLD 信号来回收子进程,子进程变成为了对系统有害的僵尸进程。

僵尸进程无法被系统有效的回收,ps 查看时状态为 Z 的即为僵尸进程,或 top 命令可直接看到 zombie 的个数。僵尸进程的父进程此时一定仍在运行,产生僵尸进程的元凶其实是他们的父进程,杀掉父进程,僵尸进程就变为了孤儿进程,便可以转交给 init 进程回收处理。

查看CPU的个数
[root@hosta ~]# nproc 
4

[root@localhost ~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
查看进程树
[root@hosta ~]# pstree 
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─agetty
        ├─auditd───{auditd}
        ├─crond
        ├─dbus-daemon
        ├─irqbalance
获取进程ID
[root@hosta ~]# pidof vim
9580
[root@hosta ~]# pgrep vim
9580

动态查看进程

[root@hosta ~]# top 
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                               
      1 root      20   0  125440   3852   2588 S   0.0  0.1   0:02.03 systemd                                                                               
      2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd                                                                              
      3 root      20   0       0      0      0 S   0.0  0.0   0:00.03 ksoftirqd/0                                                                           
      5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                                                          
      6 root      20   0       0      0      0 S   0.0  0.0   0:00.09 kworker/u256:0                                                                        
      7 root      rt   0       0      0      0 S   0.0  0.0   0:00.02 migration/0                                                                           
      8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                                                                                
      9 root      20   0       0      0      0 S   0.0  0.0   0:00.87 rcu_sched                                                                             
     10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain                                                                         
     11 root      rt   0       0      0      0 S   0.0  0.0   0:00.06 watchdog/0                                                                            
     12 root      rt   0       0      0      0 S   0.0  0.0   0:00.06 watchdog/1                                                                            
     13 root      rt   0       0      0      0 S   0.0  0.0   0:00.02 migration/1                                                                           
     14 root      20   0       0      0      0 S   0.0  0.0   0:00.03 ksoftirqd/1   

查看主机性能状态

CPU

查看CPU的平均负载

[root@hosta ~]# uptime 
 14:59:17 up  3:58,  3 users,  load average: 0.00, 0.01, 0.04

平均1分钟、5分钟、15分钟的负载值

[root@hosta ~]# top  
top - 15:00:51 up  3:59,  3 users,  load average: 0.00, 0.01, 0.04   

查看CPU的使用率

# top
%Cpu0  :  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

数字1 显示每个CPU的使用率

us

​ 用户进程占用的CPU百分比

sy

​ 系统进程占用的CPU百分比

id

​ 空闲CPU

[root@hosta ~]# mpstat 1 3
Linux 3.10.0-957.el7.x86_64 (hosta) 	01/04/2022 	_x86_64_	(4 CPU)

03:38:14 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
03:38:15 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
03:38:16 PM  all    0.00    0.00    0.25    0.00    0.00    0.00    0.00    0.00    0.00   99.75
03:38:17 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:     all    0.00    0.00    0.08    0.00    0.00    0.00    0.00    0.00    0.00   99.92

内存

# top
KiB Mem :  4026384 total,  3704136 free,   126636 used,   195612 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  3659052 avail Mem 
[root@hosta ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3932         123        3617          11         191        3573
Swap:          2047           0        2047

动态查看内存的使用率

[root@hosta ~]# vmstat 1 
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 144936    164 3759652    0    0     2   245   11   15  0  0 100  0  0
 0  0      0 144904    164 3759652    0    0     0     0   52   61  0  0 100  0  0
 0  0      0 144912    164 3759652    0    0     0     0   51   69  0  0 100  0  0
 0  0      0 144912    164 3759652    0    0     0     0   56   60  0  0 100  0  0
 1  0      0 144912    164 3759652    0    0     0     0   32   47  0  0 100  0  0

硬盘

查看硬盘容量

[root@hosta ~]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        18G  1.9G   16G  11% /
devtmpfs                devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                   tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                   tmpfs     2.0G   12M  2.0G   1% /run

硬盘IO

[root@hosta ~]# iostat 1 3
Linux 3.10.0-957.el7.x86_64 (hosta) 	01/04/2022 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.01    0.00    0.16    0.03    0.00   99.80

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               2.52         9.58      1046.38     150181   16402101
scd0              0.00         0.07         0.00       1028          0
dm-0              2.49         8.79      1046.25     137726   16400053
dm-1              0.01         0.16         0.00       2460          0

kB_read/s

​ 每秒读取的字节数

KB_wrtn/s

​ 每秒写入的字节数

网卡

查看网卡的宽带

[root@hosta ~]# ethtool ens33 | grep -i "speed"
	Speed: 1000Mb/s

查看网卡IO

[root@hosta ~]# sar -n DEV 
Linux 3.10.0-957.el7.x86_64 (hosta) 	01/04/2022 	_x86_64_	(4 CPU)

09:04:16 AM       LINUX RESTART

09:10:01 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
09:20:01 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:20:01 AM     ens33      0.85      0.57      0.07      0.07      0.00      0.00      0.00
09:30:01 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:30:01 AM     ens33      1.80      1.08      0.15      0.13      0.00      0.00      0.00
09:40:01 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:40:01 AM     ens33      0.94      0.58      0.08      0.09      0.00      0.00      0.00
09:50:01 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:50:01 AM     ens33      0.24      0.19      0.02      0.02      0.00      0.00      0.00

rxpck/s

​ 每秒接收的数据包个数

txpck/s

​ 每秒发送的数据包个数

rxkB/s

​ 每秒接收的数据量,单位KB

txkB/s

​ 每秒发送的数据量,单位KB

RAID

1、核心关注点

加快数据读写速度

加强数据可靠性

2、RAID 0 条带

优势

​ 加快数据读写速度

劣势

​ 无数据冗余

至少2块硬盘

3、RAID 1 镜像

优势

​ 增加数据可靠性

劣势

​ 浪费1/2的存储空间

至少2块硬盘

4、RAID 5

优势

​ 加快数据读写速度、增加可靠性

​ 存储数据、数据校验码

至少3块硬盘

最多支持同时坏1块盘

实际存储容量 n-1/n

5、RAID 6

优势

​ 加快数据读写速度、增加可靠性

与RAID 5惟一的区别

RAID 6同时支持块两块盘

6、RAID 10

优势

​ 加快数据读写速度、增加可靠性

劣势

​ 浪费1/2存储空间

至少4块盘

浏览器中网址访问过程

利用DNS协议进行域名解析

建立tcp协议三次握手过程

客户端发出访问网站相应页面请求(发出http协议请求报文)

服务端发出相应访问页面的请求信息(发出http响应报文)

断开tcp协议四次挥手过程

举报

相关推荐

0 条评论