命令 | 数据库运维常用操作系统命令

本文参考《鸟哥的Linux私房菜》
http://linux.vbird.org/

uname

查看系统与核心相关信息(操作系统、CPU)

[root@localhost ~]# uname -a
Linux dm01 4.19.90-24.4.v2101.ky10.x86_64 #1 SMP Mon May 24 12:14:55 CST 2021 x86_64 x86_64 x86_64 GNU/Linux
含义
Linux操作系统核心名称
dm01主机名
4.19.90-24.4.v2101.ky10.x86_64核心版本
Mon May 24 12:14:55核心版本建立时间
x86_64硬件平台为x86_64

查看操作系统发行版

[root@localhost ~]# find /etc -name *release*
/etc/kylin-release
[root@localhost ~]# cat /etc/kylin-release
Kylin Linux Advanced Server release V10 (Sword)

lscpu

显示cpu架构信息

[root@localhost ~]# lscpu
架构:                           x86_64
CPU 运行模式:                   32-bit, 64-bit
字节序:                         Little Endian
Address sizes:                   43 bits physical, 48 bits virtual
CPU:                             4
在线 CPU 列表:                  0-3
每个核的线程数:                 1
每个座的核数:                   1
座:                             4
NUMA 节点:                      1
厂商 ID:                        GenuineIntel
CPU 系列:                       6
型号:                           158
型号名称:                       Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
步进:                           10
CPU MHz:                        2591.998
BogoMIPS:                       5183.99

CPU厂商:GenuineIntel
CPU核数:4

free -g

查看物理内存和swap的使用情况(包括操作系统使用的buffers和caches)

[dmdba@localhost ~]$ free -g
              total        used        free      shared  buff/cache   available
Mem:              2           2           0           0           0           0
Swap:             3           0           3

字段说明

totalusedfreesharedbuff/cacheavailable
Mem总内存使用中的内存未使用的内存总为0buffers和cache的总和可用内存
swap最好不超过total*20%

计算公式

used = total - free - buffers - cache

字段具体含义

buffers:	Memory used by kernel buffers 
cache :	Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo)
available:	启动新应用的可以内存空间

扩展(buffer与cache)

  • buffer
    buffer是缓冲,内存与磁盘速度差别大,通过buffer这个概念解决此问题,加快磁盘写入的效率
    将内存中的数据写入磁盘的过程,可以这么理解:
    内存 >> buffer >> 磁盘
  • cache
    cache是缓存,cpu与内存的速度差别大,通过cache这个概念解决此问题,加快CPU处理速度
    提前预判CPU会使用的指令,将其保存到cache中,这样CPU要使用时,可直接从cache中获取,过程可以这么理解:
    内存(预判CPU要用的指令) >> cache >> CPU(真正要执行时从cache中获取)

以上为个人粗略理解,更详细介绍可阅读相关资料,或如下链接

  1. free命令中cached和buffers的区别
    https://blog.csdn.net/qq_25518029/article/details/119927007
  2. 缓冲区(buffer)与缓存(cache)
    https://www.cnblogs.com/mlgjb/p/7991903.html

cat /etc/fstab

fstab - static information about the filesystems
记录文件系统的相关信息(静态)

一些与磁盘相关的命令(mount、dump、fsck),在开机时会顺序读取该文件的信息,完成挂载、备份、检查扇区等操作。

也就是说,若你希望操作系统启动时,自动做一些磁盘相关的操作时,可修改该文件的信息

[dmdba@localhost ~]$ cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Mon Oct 11 18:33:45 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=a4f64246-522c-44a9-840f-a54b2048aa58 /                       xfs     defaults        0 0
UUID=58fcfe75-f828-43b7-ada6-5a2a2e52cad8 swap                    swap    defaults        0 0
fs_specfs_filefs_vfstypefs_mntopsfs_freqfs_passno
块设备(如/dev/cdrom)或远程文件系统(如NFS)最好使用UUID来描述文件系统的挂载点文件系统mount的挂载选项不做dump备份不做fsck扇区检查

id

id - print real and effective user and group IDs

打印指定用户的用户和组信息

打印dmdba用户的uid、gid、groups
[dmdba@localhost ~]$ id dmdba
uid=1001(dmdba) gid=1001(dinstall) groups=1001(dinstall)

cat /etc/sysctl.conf

sysctl命令使用的参数文件,用于覆盖默认内核参数

显示所有的内核参数(的当前值)
sysctl -a
...
vm.user_reserve_kbytes = 87247
vm.vfs_cache_pressure = 100
vm.zone_reclaim_mode = 0

读取/etc/sysctl.conf的内核参数值(操作系统运行期间,修改内核参数值)
sysctl -p

cat /sys/block/sda/queue/scheduler

该文件用于设置块设备使用的I/O队列调度策略,会影响块设备上的所有文件系统。
需根据块设备的IO负载情况,选择合适的I/O队列调度策略。(最好通过测试,选出最优的调度策略)

优先了解以下两种I/O队列调度策略

  • noop
  • deadline

以上两种调度策略,此处暂时不做扩展,如需扩展,可阅读下面这篇文章
https://www.cloudbees.com/blog/linux-io-scheduler-tuning

修改磁盘的I/O队列调度策略(I/O Scheduler)

查看当前磁盘的I/O队列调度策略(调度策略为noop)
[root@localhost ~]# cat /sys/block/sda/queue/scheduler 
[noop] deadline cfq 
修改磁盘的I/O队列调度策略为deadline
[root@localhost ~]# echo deadline > /sys/block/sda/queue/scheduler 
当前磁盘的I/O队列调度策略为deadline
[root@localhost ~]# cat /sys/block/sda/queue/scheduler 
noop [deadline] cfq 

lsblk

可视为【list block device】的缩写,列出所有块设备。(主要是看磁盘的划分)
对于块设备,可以将其切割成多个分区,每个分区继续划分给lvm用
disk >> part >> lvm

仅列出块设备本身,不列出块设备的分割信息。

[root@localhost ~]# lsblk -d
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda    8:0    0  30G  0 disk 
sr0   11:0    1   4G  0 rom  /run/media/root/Kylin-Server-10
[root@localhost ~]# lsblk
NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda             8:0    0  30G  0 disk 
├─sda1          8:1    0   1G  0 part /boot
└─sda2          8:2    0  29G  0 part 
  ├─klas-root 253:0    0  26G  0 lvm  /
  └─klas-swap 253:1    0   3G  0 lvm  [SWAP]
sr0            11:0    1   4G  0 rom  /run/media/root/Kylin-Server-10

查看文件系统UUID的两种方式
UUID(universally unique identifier)

法1:blkid
一行代表一个文件系统,主要列出了名称、UUID、文件系统类型

[root@localhost ~]# blkid
/dev/sr0: BLOCK_SIZE="2048" UUID="2021-08-09-17-54-20-00" LABEL="Kylin-Server-10" TYPE="iso9660"
/dev/sda1: UUID="11a2b6c9-6a8f-4158-8521-9994a2260742" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="f95ced62-01"
/dev/sda2: UUID="FYkNva-H1EL-0LUq-qUy6-l5G3-SRat-q1YNcn" TYPE="LVM2_member" PARTUUID="f95ced62-02"
/dev/mapper/klas-root: UUID="d77bdac0-eb85-4a96-886b-c305eefc6519" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/klas-swap: UUID="9f3f8759-95a7-4366-9c09-b36cec1eb5e5" TYPE="swap"

法2:lsblk -f

[root@localhost ~]# lsblk -f
NAME          FSTYPE      FSVER        LABEL           UUID                                   FSAVAIL FSUSE% MOUNTPOINT
sda                                                                                                          
├─sda1        xfs                                      11a2b6c9-6a8f-4158-8521-9994a2260742    803.1M    21% /boot
└─sda2        LVM2_member LVM2 001                     FYkNva-H1EL-0LUq-qUy6-l5G3-SRat-q1YNcn                
  ├─klas-root xfs                                      d77bdac0-eb85-4a96-886b-c305eefc6519      7.8G    70% /
  └─klas-swap swap        1                            9f3f8759-95a7-4366-9c09-b36cec1eb5e5                  [SWAP]
sr0           iso9660     Joliet Exten Kylin-Server-10 2021-08-09-17-54-20-00                       0   100% /run/media/root/Kylin-Server

I/O设备

可以与计算机进行数据传输的硬件

I/O设备分类

  • 块设备(block device)
    又称为外部存储器(如硬盘、软盘、光盘),用于长期保存数据,以块为单位进行传输。(块常见尺寸为)
  • 字符设备
    I/O传输过程中以字符为单位进行传输的设备(如键盘、鼠标、打印机)

firewall-cmd

管理防火墙配置的命令

防火墙配置分为两类

  • 运行时配置(内存中)
    修改当前内存的防火墙配置,立即生效,重启防火墙失效
  • 永久配置(磁盘中)
    修改配置文件里的防火墙配置,当前不生效,重启防火墙生效

修改防火墙配置时,默认为运行时配置,永久配置需添加参数 --permanent

开放防火墙5236端口

查看已开放的端口
firewall-cmd --list-ports

开放端口,域为public,开放端口5236(协议为tcp),永久配置(重启防火墙生效)
firewall-cmd --zone=public --add-port=5236/tcp --permanent

重启防火墙
systemctl reload firewalld

检查5236端口是否开放
firewall-cmd --query-port=5236/tcp
查看所有域的相关信息
firewall-cmd  --list-all-zones

查看默认的域(zone)
[root@dm01 ~]# firewall-cmd --get-default-zone
public

df -h

查看文件系统信息

注意1:留意挂载点的可用空间和已用%,避免磁盘空间不足导致的问题(无法写入)
注意2:可使用df -i 查看可用的inode数量,文件小而多的话inode会很大,也会导致挂载点无法写入

[root@dm01 block]# df -h
文件系统               容量  已用  可用 已用% 挂载点
devtmpfs               1.4G     0  1.4G    0% /dev
tmpfs                  1.5G  4.0K  1.5G    1% /dev/shm
tmpfs                  1.5G  9.6M  1.5G    1% /run
tmpfs                  1.5G     0  1.5G    0% /sys/fs/cgroup
/dev/mapper/klas-root   26G   26G  375M   99% /
tmpfs                  1.5G   40K  1.5G    1% /tmp
/dev/sda1             1014M  211M  804M   21% /boot
tmpfs                  289M   40K  289M    1% /run/user/0
/dev/sr0               4.1G  4.1G     0  100% /run/media/root/Kylin-Server-10

主题:理解inode
参考:https://www.cnblogs.com/xiexj/articles/7214502.html

inode、硬链接、软链接
在这里插入图片描述

/etc/security/limits.conf

为防止用户浪费资源,增强操作系统的资源控制,提高操作系统稳定性,可使用此文件对用户进行资源限制(如最大文件数,最大线程,最大内存等资源使用量)

domaintypeitemvalue
用户名/组名限制类型资源阈值
部署DM数据库时,可参考如下资源配置
dmdba  soft      nice       0
dmdba  hard      nice       0
dmdba  soft      as         unlimited
dmdba  hard      as         unlimited
dmdba  soft      fsize      unlimited
dmdba  hard      fsize      unlimited
dmdba  soft      nproc      65536
dmdba  hard      nproc      65536
dmdba  soft      nofile     65536
dmdba  hard      nofile     65536
dmdba  soft      core       unlimited
dmdba  hard      core       unlimited
dmdba  soft      data       unlimited
dmdba  hard      data       unlimited
资源解释:
nice 	- max nice priority allowed to raise to values: [-20, 19]
as 		- address space limit (KB)
fsize 	- maximum filesize (KB)
nproc 	- max number of processes
nofile 	- max number of open file descriptors
core 	- limits the core file size (KB)
data 	- max data size (KB)

与该文件有关的命令:ulimit

参数详细介绍(待补充)
nice 进程优先级,取值范围为[-20, 19],数值越小优先级越高
nofile 用户能打开的文件描述符的最大数量
nproc 用户能打开的最大进程数

参数实验(待补充)

dd

复制文件,依照指定操作数转换并格式化。

dd可以读取/写入扇区的内容

可使用dd命令,测试磁盘读写速度(注:此处只是粗略测试磁盘最大读写性能,因为读和写都是连续的)

切换到需要测试的磁盘
1. 测试磁盘连续写速度
dd if=/dev/zero of=test bs=8k count=4k oflag=dsync
2. 测试磁盘连续读速度
dd if=test of=/dev/null bs=8k count=4k oflag=dsync
测试完记得删掉test文件,释放空间

说明:
if为inputfile,of为outfile,bs为数据块,count为数据块的个数,oflag=dsync每一次写都是物理写
/dev/zero设备不断将0输出到test文件中,输出的数据块大小为8k,共输出4k个数据块,使用同步I/O存取模式

/dev/zero 可以不断输出0的设备
/dev/null 可以不断写入数据的设备

磁盘性能指标
iops - (Input/Output Operations Per Second)

还能使用dd,重新分配文件系统
例如,若/dev/sda1这个文件系统有100G,挂载在/data目录下,若实际使用情况只有10G,如何利用剩余90G的空间?

cd /data
dd if=/dev/zero of=test bs=8k count=100k oflag=dsync
ll -h /data/test
blkid /data/test
mkfs.xfs -f /date/test
mount -o loop /date/test /arch
df -h /arch

iostat(待补充)

fio

【1. fio下载】

途径1:https://brick.kernel.dk/snaps/
途径2:http://freecode.com/projects/fio

【2. fio安装】

# tar -zxvf fio-3.28.tar.gz
cd fio-3.28/
./config
make
make install

注意:
编译与gcc版本挂钩,新的fio要用新的gcc

rpm -qa|grep gcc
gcc-4.8.5-16.el7.x86_64

我测试机的gcc版本较旧,故使用的fio为fio-2.2.5.tar.gz

【3. 测试磁盘】

[root@localhost ~]# fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psync -bs=16k -size=5G -numjobs=32 -runtime=10 -group_reporting -name=mytest      
mytest: (g=0): rw=randrw, bs=16K-16K/16K-16K/16K-16K, ioengine=psync, iodepth=1
...
fio-2.2.5
Starting 32 threads
Jobs: 6 (f=6): [m(1),E(7),m(2),E(1),m(2),E(11),_(1),E(4),m(1),E(2)] [55.0% done] [2400KB/2352KB/0KB /s] [150/147/0 iops] [eta 00m:09s]
mytest: (groupid=0, jobs=32): err= 0: pid=3490: Thu Nov 25 19:37:26 2021
  read : io=23984KB, bw=2277.1KB/s, iops=142, runt= 10529msec
    clat (usec): min=33, max=1123.5K, avg=215788.57, stdev=202708.12
     lat (usec): min=33, max=1123.5K, avg=215788.85, stdev=202708.09
    clat percentiles (usec):
     |  1.00th=[   73],  5.00th=[  159], 10.00th=[  700], 20.00th=[28544],
     | 30.00th=[60160], 40.00th=[105984], 50.00th=[166912], 60.00th=[240640],
     | 70.00th=[301056], 80.00th=[370688], 90.00th=[493568], 95.00th=[602112],
     | 99.00th=[905216], 99.50th=[937984], 99.90th=[1073152], 99.95th=[1122304],
     | 99.99th=[1122304]
    bw (KB  /s): min=   15, max=  268, per=3.32%, avg=75.69, stdev=42.42
  write: io=24752KB, bw=2350.9KB/s, iops=146, runt= 10529msec
    clat (usec): min=94, max=492896, avg=3548.61, stdev=22553.55
     lat (usec): min=94, max=492896, avg=3549.16, stdev=22553.53
    clat percentiles (usec):
     |  1.00th=[  121],  5.00th=[  153], 10.00th=[  179], 20.00th=[  217],
     | 30.00th=[  247], 40.00th=[  270], 50.00th=[  306], 60.00th=[  378],
     | 70.00th=[  780], 80.00th=[ 1288], 90.00th=[ 2672], 95.00th=[10560],
     | 99.00th=[41216], 99.50th=[142336], 99.90th=[296960], 99.95th=[493568],
     | 99.99th=[493568]
    bw (KB  /s): min=   15, max=  348, per=4.28%, avg=100.54, stdev=59.73
    lat (usec) : 50=0.16%, 100=1.02%, 250=17.96%, 500=18.09%, 750=3.05%
    lat (usec) : 1000=3.74%
    lat (msec) : 2=5.61%, 4=3.15%, 10=1.58%, 20=2.76%, 50=6.73%
    lat (msec) : 100=5.45%, 250=11.82%, 500=14.15%, 750=3.78%, 1000=0.85%
    lat (msec) : 2000=0.10%
  cpu          : usr=0.00%, sys=0.56%, ctx=3058, majf=0, minf=10
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=1499/w=1547/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
   READ: io=23984KB, aggrb=2277KB/s, minb=2277KB/s, maxb=2277KB/s, mint=10529msec, maxt=10529msec
  WRITE: io=24752KB, aggrb=2350KB/s, minb=2350KB/s, maxb=2350KB/s, mint=10529msec, maxt=10529msec

Disk stats (read/write):
  sda: ios=1558/1560, merge=0/2, ticks=319851/4941, in_queue=324771, util=97.96%

注意:
需要关注读写的iops,即每秒能读写多少次

参考:
Fio的安装与使用
https://blog.csdn.net/FZeroTHero/article/details/95662606

安装fio命令linux,在Linux中安装和使用Fio来测评硬盘性能
https://blog.csdn.net/louisjh/article/details/78748063

scp

通过网络复制文件

可用来测网速(scp 一个文件到另一台服务器)

创建一个80M的文件
dd if=/dev/zero of=test bs=8k count=10k oflag=dsync

使用网络传输test文件,查看网速(要替换ip)
[root@localhost ~]# scp test root@127.0.0.1:/tmp/test
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:EIFnkmXkizIn7kbKKW2tjqX4DRTM6O6il+Pp4pvPJBo.
ECDSA key fingerprint is MD5:bd:8c:62:0e:e9:f3:06:7d:1f:32:cf:54:d0:5d:9b:59.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
root@127.0.0.1's password: 
test                                                             100%   80MB  54.1MB/s   00:01   
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值