目录
一、常用
关闭防火墙:systemctl stop firewalld.service(临时,重启防火墙还会开启,)
systemctl disable firewalld.service(永久关闭)
确认防火墙状态为inactive:systemctl status firewalld.service(ubuntu系统的防火墙服务为ufw,SUSE12.5防火墙:SuSEfirewall2)
将系统改为图形化启动:systemctl set-default graphical.target
将系统改为文字界面启动:systemctl set-default multi-user.target
获取当前系统默认界面模式:systemctl get-default
查看os内核版本:uname -r或uname -a
查看当前os版本:cat /etc/redhat-release或cat /etc/os-*或hostnamectl
查看系统所识别的网卡:lspci | grep -i eth
查看系统所识别的raid卡:lspci |grep -i raid
查询网口温度:mget_temp -d <bdf号>
查看系统分区情况:lsblk
开启ssh root 登录权限vim /etc/ssh/sshd_config
允许 PermitRootLogin yes
StrictModes yes
重启服务 systemctl restart sshd
系统下设置ssh连接休眠时间:vi /etc/ssh/sshd_config 设置ClientAliveCountMax值大一点,单位是分钟。然后重启ssh服务使生效
linux安装tar包:解压tar包之后进入文件夹内,进行编译安装:./configure; make ;make install
linux卸载tar包:进驱动包src目录,make uninstall
linux安装rpm包:rpm -ivh <软件包>
linux卸载rpm包:rpm -e <软件包>
linux查询rpm包:rpm -qa |grep -i <软件包>
linux安装deb包:dpkg -i <软件包>
linux查询deb包:dpkg -L
linux卸载deb包:dpkg -P/-r <软件包>
linux查询deb包:dpkg -l |grep -i <软件包>
卸载驱动模块:rmmod <驱动模块名称>
加载驱动模块:modprobe <驱动模块名称>
查询历史命令:history,使用历史命令:!+<命令序号>
停掉后台服务:pkill -9 <服务名称>,如:pkill -9 iperf
开启自启服务:rc-local,查看服务文件位置:systemctl status rc-local,可查看到控制服务的具体文件,如:/etc/rc.d/rc.local,一般用于跑长时间脚本
停止重启脚本:进入grub模式,在最下面的linux的结尾加上空格1,按ctrl+X,就可以输入命令,进入/etc/rc.d/rc/local注释掉自己加的命令,也可以在echo <重启次数> >/var/log/tan_reboot.conunt
suse跑重启编辑/etc/init.d/after.local
查看时间:date
查看时间与时区:timedatectl
将系统设置为20年5月9日:date -s 05/09/20
将系统设置为10点05分00秒:date -s 11:10:00
同步一下系统时钟:clock -w
将当前时间和日期写入bios:hwclock -w
将系统时间写入到硬件时钟模块:hwclock --systohc
将硬件时钟模块时间写入到系统:hwclock --hctosys
将当前时区设置为上海:timedatectl set-timezone Asia/Shanghai
查询模块信息:modinfo <模块名称>
OS中DC power cycle下电:ipmitool chassis power cycle
OS中重启:reboot
查询IB卡的状态:ibstat
IB卡重启启动驱动:先打驱动,/etc/init.d/openibd restart ,,IB卡开启网口:/etc/init.d/opensmd resart(只会开启一个口)
IB卡分别启动口:先用ibstat |grep -i GUID查询出Guid号,再用opensm -g <Guid号> -B
串口打印:ipmitool -I lanplus -H 172.31.186.65 -U Administrator -P Admin@9000 sol activate
pxe启动设置,options是设置持久性:ipmitool -I lanplus -H bmc_ip -U root -P passwd chassis bootdev pxe options=persistent
打印bios串口日志打开:进入putty进入BMC:ipmcset -t maintenance -d biosprint -v 1
ipmcset -t sol -d activate -v 1 0
系统内格式化盘:dd if=/dev/zero of=/dev/sda bs=1M count=300
创建2G文件:dd if=/dev/urandom of=filename bs=1M count=2048
本地源第二次挂的时候可以出现update不了,清yum缓存:yum clean all
查看当前grub添加的配置:cat /proc/cmdline
GPU查询固件信息:nvidia-smi q |grep -i vbios
脚本中需要用到./运行文件的命令时,需要把运行的文件复制到cp -a <文件> /usr/bin/
linux中脚本自动开启单独窗口:xterm -e iperf -c 10.10.10.10 -i 3 -t 60 -P 8 |grep SUM ;
系统下配置休眠时间:vi /etc/profile ,修改TMOUT=1800(如果没有就新增export TMOUT=1800) 这样30分钟没操作就休眠,可以把时间调大
ubuntu设置root密码:sudo passwd root
ubuntu切换root用户登录:su root
查看文件被哪些进程调用:lsof |grep delete然后重启对应服务就行
查看文件MD5值:certutil -hashfile BCLinux-R8-U2-Server-x86_64-210617.iso MD5(cmd命令行查看)
ssh远程:ssh <用户名>@<ipv4> 如:ssh root@10.10.10.10
scp远程拷贝:scp <文件> <用户名>@<ipv4>:<存放位置>,如:scp iperf.txt root@1.1.1.1:/root/
复制重复文件默认确定:cp命令前加上\
kylin v10Grub密码
root Kylin123123
openeulerGrub密码
root openEuler#12
sar依赖包:sysstat
lspci依赖包:pciutils
系统下执行ipmitool lan print:可以打印出对应的BMCIP
dmesg一直刷新,dmesg -T -w
vi编辑中替换全部的字段:%s/被替换的字符/想要替换成什么/g
删除文件全部内容:编辑文件,光标在开头,接着按小写d然后按大写G
没有cpupower命令安装
apt-get install cpufrequtils
sudo cpufreq-set -g performance
grep、sed、awk、tr简略应用:
[root@localhost ~]# lspci |grep -i eth |grep -i 1f3f
51:00.0 Ethernet controller: Device 1f3f:9020 (rev 21)
51:00.1 Ethernet controller: Device 1f3f:9020 (rev 21)
[root@localhost ~]# lspci |grep -i eth |grep -i 1f3f |sed -n 2p
51:00.1 Ethernet controller: Device 1f3f:9020 (rev 21)
[root@localhost ~]# lspci |grep -i eth |grep -i 1f3f |sed -n 2p |awk '{print $1}'
51:00.1
[root@localhost ~]# lspci |grep -i eth |grep -i 1f3f |sed -n 2p |awk '{print $1}' |tr -d :.
51001
debian和ubuntu关闭系统自动更新命令:dpkg-reconfigure -plow unattended-upgrades
sh运行shell脚本,脚本中有i++等代码,只能运行一次,需要使用bash运行这个脚本,如果需要改为sh运行则命令行输入sudo dpkg-reconfigure dash选择no
mellanox网卡开启虚拟化功能:mlxconfig -d /dev/mst/mt4123_pciconf0 set SRIOV_EN=1
arm机器安装tar包编译时试试./configure -build=alpha
windows编写的脚本在linux系统运行,在脚本内编写后输入set ff=unix
raid卡升级FW:./storcli64 /c0 download file=3508_nopad.rom noverchk
raid卡清楚raid0里面的小分区:mkfs.ext4 /dev/sdc
系统下建raid0:./storcli64 /c0 add vd r0 drives=69:0-7 (r0是raid0,r1是raid1)
更新mellanox网卡固件:flint -d /dev/mst/网卡位置 -i /网卡固件位置 burn (如果提示-E,加上-allow_psid_change参数)
windows关闭解锁快捷键:运行输入gpedit.msc,之后依次选择computer***--第二个选项(windows开头)---第四个选项(security开头)---
第二个选项(local开头)---第三个选项(security开头)--选择按键选项打开
windows查询驱动模块:driverquery
因特尔固件升级:install.sh upgrade
windows系统关闭开机按键输入密码:运行->netplwiz
linux软件包:https://pkgs.org/
二、网络
配置临时ipv4:ifconfig 网口名称 ip地址/子网掩码(如23) up
配置永久ip:nmtui工具
启动网口:nmcli c up 网口名称
重启网络服务:service network restart
或者 systemctl start network.service
CentOS8.0以上为systemctl restart NetworkManager
配置ip文件(静态ip):vi /ect/sysconfig/network-scripts/网口
BOOTPROTO=static
IPADDR=ip地址
NETMASK=子网掩码
GATEWAY=网关
配置网关:route add default gw 172.31.186.1 dev 网口名称
查看网口速率:ethtool <网口名称>
查看网口固件及驱动版本:ethtool -i <网口名称>
查看网口队列数:ethtool -l <网口名称>
修改网口队列数:ethtool -L <网口名称> combined <队列数>
查看网口tso、lro等属性状态:ethtool -k <网口名称>
修改网口tso、lro等属性状态:ethtool -L <网口名称> <lro等参数> <on/off>
网卡改为自协商:ethtool -s ethX autoneg on
查看网口速率情况:sar -n DEV 1
linux8.0以上的系统重启网络服务命令:nmcli connection reload
临时修改MAC地址:先down掉网口,ifconfig 网口 hw ether MAC地址
配置IPV6:ifconfig enp6s0 inet6 add 2017::a:1/64 删除ip把add改成del
ping IPV6:ping6 -I ethx ipv6_address(对端ipv6)大写i
LACP修改网口bond0的配置文件,路径:/etc/sysconfig/network-scripts/,BONDING_OPTS引号中加入lacp_rate=1 xmit_hash_policy=layer2+3
bond0的trunk配置:load-balance round-robin
bond4的trunk配置:mode lacp-static lacp timeout fast
ifconfig配置多一个网口ifconfig ens1f0:1 10.1.1.1/24 up
hinic网卡,AOC线:
交换机网口设置:fec mode none
os设置强制速率:ethtool -s enp2s0f0 speed 25000 autoeng off
三、测试工具
1、netperf:
测试端:netperf -H <ipv4> -l <运行时间> -p <端口> -t <测试类型>
服务端:netserver -p <端口>
-t: 指定进行的测试类型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR。可以省略,省略默认为TCP_STEAM(其中TCP_STREAM:client端向server端发送批量TCP数据;UDP_STREAM:client端向server端发送批量UDP数据;TCP_RR和TCP_CRR:前者是在同一个连接中进行多次request和response请求,后者是每次请求新建一个连接(HTTP);UDP_RR:使用UDP进行request和response请求)
-H:指定远程主机,即netserver服务器地址
-l: 指定时间
-p:指定netserver监听端口,可以省略,省略即为默认端口12865
例如:netperf -H 1.1.1.1 -l 40 -p 5001
2、iperf:
测试端:iperf -c <ipv4> -i <每多少秒打印一次> -t <运行时间> -p <端口> -P <线程>
服务端:iperf -s -p <端口>
例如:iperf -c 1.1.1.1 -i 3 -t 60 -p 5001 -P 10 |grep SUM
3、trafgen:
发送命令:trafgen --cpp --dev <网口> --conf test.trafgen
查看接收:ethtool -S eth1 |grep -i rx|grep -i packets
单播 准确MAC地址
任意单播 不是测试机MAC
广播 第一位改成FF
组播 第一位改成01
test.trafgen文件内容如下:
#include <stddef.h> { |
4、stress工具(压力工具)
可以对CPU和内存及IO进行压力测试,
工具参数:
-c --cpu 产生n个进程,每个进程都反复不停的计算随机数的平方根
-i --io 产生n个进程,每个进程反复调用 将内存上的内容写到硬盘上
-m -vm 产生n个进程,每个进程不断分配和释放内存
--vm-bytes B:指定分配内存的大小
--vm-stride B:不断的给部分内存赋值,让COW(Copy On Write)发生
--vm-hang N :指示每个消耗内存的进程在分配到内存后转入睡眠状态N秒,然后释放内存,一直重复执行这个过程
--vm-keep:一直占用内存,区别于不断的释放和重新分配(默认是不断释放并重新分配内存)
-t --timout 在n秒后结束进程
-d --hdd 产生n个不断执行 write 和unlink函数的进程(创建文件、写入内容、删除文件)
例如:
CPU压力测试:stress --cpu 2 --timeout 60 (开启2个CPU进程,60秒后结束)
IO压力测试:stress --io 2 --timeout 60s (开启2个IO进程,刷新内存缓冲区到磁盘,执行60秒)
内存(Memory)测试:stress --vm 2 --vm-bytes 1G --vm-hang 100 --timeout 100s (开启2个进程分配内存,每次分配1GB内存,保持100秒后释放,100秒后退出。)
查看工具:
mpstat -P ALL 1 2 (#查看CPU、IO等的占用情况,1表示每1S刷新一次,运行2S)
pidstat -u 5 (#查看运行中的进程和任务,每5秒刷新一次,可查询哪个进程占用cpu多)
pidstst -d 1 3 (#查看各进程的IO情况)
注:使用stress无法模拟iowait升高,但sys(表示内核进程使用的 CPU 百分比。)升高。stress -i参数表示通过系统调用sync来模拟IO问题,但sync是刷新内存缓冲区数据到
磁盘中,以确保同步。如果内存缓冲区内没多少数据,读写到磁盘中的数据也就不多,没法产生IO压力。
使用SSD(固态硬盘)磁盘的环境中尤为明显,iowait一直为0,但因为大量系统调用,导致系统CPU使用率sys升高。
5、FIO工具(磁盘读写压力工具)
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=5G -numjobs=10 -runtime=1000 -group_reporting -name=mytest
说明:
filename=/dev/sdb1 测试文件名称,通常选择需要测试的盘的data目录。
direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。
rw=read/write/randread/rw/randwrite/randrw 顺序读,顺序写,顺序读写,随机读,随机写,随机读写
ioengine=psync io引擎使用pync方式
bs=4k/16k 单次io的块文件大小为4k/16k
size=5g 本次的测试文件大小为5g,以每次4k的io进行测试。
numjobs=10 本次的测试线程为10.
runtime=1000 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。
group_reporting 关于显示结果的,汇总每个进程的信息。
此外
rwmixwrite=30 在混合读写的模式下,写占30%
lockmem=1g 只使用1g内存进行测试。
zero_buffers 用0初始化系统buffer。
nrfiles=8 每个进程生成文件的数量。
IOPS:每秒读写的次数
结果查看:
[root@localhost ~]# fio -filename=/dev/sdd -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs=10 -group_reporting -name=mytest
mytest: (g=0): rw=read, bs=(R) 16.0KiB-16.0KiB, (W) 16.0KiB-16.0KiB, (T) 16.0KiB-16.0KiB, ioengine=psync, iodepth=1
...
fio-3.7
Starting 10 threads
Jobs: 10 (f=10): [R(10)][100.0%][r=695MiB/s,w=0KiB/s][r=44.5k,w=0 IOPS][eta 00m:00s]
mytest: (groupid=0, jobs=10): err= 0: pid=112037: Thu May 18 17:08:28 2023
read: IOPS=44.5k, BW=695MiB/s (729MB/s)(20.0GiB/29447msec)
clat (usec): min=32, max=838, avg=223.78, stdev=49.56
lat (usec): min=32, max=840, avg=223.88, stdev=49.56
clat percentiles (usec):
| 1.00th=[ 65], 5.00th=[ 135], 10.00th=[ 159], 20.00th=[ 188],
| 30.00th=[ 206], 40.00th=[ 221], 50.00th=[ 233], 60.00th=[ 241],
| 70.00th=[ 251], 80.00th=[ 262], 90.00th=[ 277], 95.00th=[ 293],
| 99.00th=[ 322], 99.50th=[ 334], 99.90th=[ 371], 99.95th=[ 388],
| 99.99th=[ 429]
bw ( KiB/s): min=66816, max=91552, per=10.00%, avg=71252.18, stdev=6378.89, samples=580
iops : min= 4176, max= 5722, avg=4453.26, stdev=398.68, samples=580
lat (usec) : 50=0.42%, 100=1.94%, 250=66.63%, 500=31.01%, 750=0.01%
lat (usec) : 1000=0.01%
cpu : usr=0.66%, sys=1.03%, ctx=1310750, 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 rwts: total=1310720,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):(主要看这个)
READ: bw=695MiB/s (729MB/s), 695MiB/s-695MiB/s (729MB/s-729MB/s), io=20.0GiB (21.5GB), run=29447-29447msec
Disk stats (read/write):
sdd: ios=1309028/0, merge=0/0, ticks=288610/0, in_queue=287810, util=100.00%
主要看总结行:运行了30S,每秒的带宽为695MiB/s,总共读了20GiB(10个线程,每个线程2G)
5、storcli64工具,strcli64 /c0 show查出的信息:
VD LIST :
=======
----------------------------------------------------------------------
DG/VD TYPE State Access Consist Cache Cac sCC Size Name
----------------------------------------------------------------------
0/0 RAID0 Optl RW Yes NRWTD - ON 893.137 GB kylinv10sp1
----------------------------------------------------------------------
VD list:逻辑盘信息(raid信息)
DG/VD:raid卡位置
TYPEL:raid组
State:状态
PD LIST :
=======
------------------------------------------------------------------------------
EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp Type
------------------------------------------------------------------------------
64:2 21 Onln 0 893.137 GB SAS SSD Y N 512B MZILT960HBHQ/007 U -
------------------------------------------------------------------------------
PD List:物理盘信息(raid信息)
State:状态
定位硬盘:/c0/e64/s2
查看控制器0 所有背板及背板上的所有磁盘信息:storcli64 /c0/eall/sall show
查看所有控制器 所有背板 背板上的所有磁盘的详细信息:storcli64 /call/eall/sall show all
设置控制器 0 背板36 槽位号为1的磁盘状态为good:storcli64 /c0/e36/s1 set good
设置控制器 0 背板36 槽位号为1的磁盘状态为offline:storcli64 /c0/e36/s1 set offline
设置控制器为0 背板为36 槽位号为1的磁盘状态为online:storcli64 /c0/e36/s1 set online
查看正在初始化的磁盘:storcli64 /cx/ex/sx show initialization
磁盘开始初始化:storcli64 /cx/ex/sx start initialization
停止磁盘的初始化:storcli64 /cx/ex/sx stop initialization
开始定位:storcli64 /cx/ex/sx start locate
停止定位:storcli64 /cx/ex/sx stop locate
使用默认参数创建的RAID5 读策略为ra: Read ahead 写策略wt io策略为direct 条带大小为256:storcli64 /c0 add vd r5 size=all name=diskarray01 drives=36:15-16,36:18
设置读写策略条带大小的RAID5:storcli64 /c0 add vd r5 size=100GB name=diskarray01 drives=50:5-7,50:9 awb ra cached strip=256
获得dgs号 storcli64 /call/vall show 可看到DG及dgs的值为特定的DG配置热备
获取空闲磁盘storcli64 /c0 /eall/sall show 磁盘状态为UGOOD
背板为3,槽位为6的磁盘做 dgs为0的RAID的专属热备:storcli64 /c0/e3/s6 add hotsparedrive dgs=0
查看热备盘 storcli64 /c0 /eall/sall show 磁盘状态为DHS,GHS
删除热备盘 storcli /c0/ex/sx delete hotsparedrive
删除raid :storcli64 /cx/vx del force
查看快速初始化完成的:storcli64 /cx/vx show init
开启快速初始化:storcli64 /cx/vx start init
开启完全初始化:storcli64 /cx/vx start init full
停止初始化:storcli64 /cx/vx stop init
RAID5(5块以上)和RAID6(6块以上)在进行快速初始化时会转到后台进行初始化
查看后台初始化:storcli64 /cx/vx show bgi
停止初始化:storcli64 /call/v1 stop bgi
挂起初始化:storcli64 /call/v1 suspend bgi
查看硬盘和背板及VD:lsscsi -g
四:虚拟化
linux创建虚拟机:virt-manager工具
查看SR-IOV最大值:cat /sys/class/net/网口名称/device/sriov_totalvfs
X86使能做虚拟机,先 vi /etc/default/grub,里面的GRUB_CMDLINE_LINUX行后面引号前加上intel_iommu=on iommu=pt保存,然后执行grub2-mkconfig -o /boot/efi/EFI/bclinux/grub.cfg(bclinux为系统,换系统根据系统名称改变)
命令行克隆虚拟机:virt-clone --original sunhao-2 --name sunhao-3 --file /home/data/kvmsunhao-3.qcow2
--original //后面跟要克隆的虚拟机名字
--name //克隆后虚拟机的名字
--file //指定存放的路径
使用xml文件克隆虚拟机:virsh dumpxml centos7.6 >centos7.6.xml #生成一个centos7.6系统当前的XML文件
cp系统centos7.6的虚拟盘,cp centos7.6.qcow2 cenntos7.6-clone.qcow2
之后修改系统生成的xml文件下的虚拟磁盘和虚拟机命名
设置VF口不跟随物理口: ip link set [ethX] vf [vf_num] state enable(vf_num为0,1,2)
auto: 表示VF Link状态跟随PF状态变化
enable: 表示VF Link状态一直为up/yes的,不会因为PF link up或down而发生变化。
Disable: 表示VF link 状态一直为down的,VF无法向外发包。
配置虚拟网口VF的MAC地址:ip link set enp7s0f0 vf 0 mac 1a:20:3c:4d:5e:a1
查看对应网口的VF有没有MAC地址:ip link show dev pf口
OS下给虚拟机桥接网卡设备:virsh attach-interface openEuler20.03.3 --type direct --source enp122s2u1u1 --config
五:常遇问题
1、IPV6配置时报错:Permission denied:查看sysctl -a |grep disable_ipv6,结果为=1的话,则会出现报错,修改/etc/sysctl.conf文件,增加net.ipv6.conf.ens1f0.disable_ipv6 = 0,保存后执行/sbin/sysctl -p 命令生效
2、rhel内核出现进不去图形化花屏:vi /etc/gdm/custom.conf 中去掉WaylandEable=false前面的注释#保存重启
3、如果使能网卡的时候提示echo: write error: Cannot allocate memory修改内核件/etc/default/grub,加入pci=realloc,保存退出使用命令grub2-mkconfig -o /boot/efi/Efi/系统名字/grub.cfg生效
4、vi或者vim编辑文件时出现e297: write error in swap file解决方法:df -lh查看磁盘占用率,如果发现有文件占用100%,则cd /到根目录下用du -sh * |sort -n查找大文件,后面根据提示的文件一步一步使用du命令查找进入指定文件后删除
5、安装完软件出现-bash: /usr/sbin/iperf: No such file or directory
打开终端输入以下命令让所有命令启作用
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
6、ARM机器加卸载驱动出现大量cma报错,在内核中加入cma=1G@5G
7、ARM机器虚拟机安装时图形化卡死,把xml文件的type=virtio和type=usb和type=tablet和type=keyboard几行删除进行文字界面安装,原因可能时系统不支持这些配置;或者试试在linux行后面加入quiet splash text
8、nmtui中dhcp网口出现分配不到ip,试试把网口配置文件中的MAC地址删除,然后ifdown 网口,ifup 网口