赞
踩
1.查看Linux服务器的CPU详细情况
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 61 model name : Intel Core Processor (Broadwell) stepping : 2 microcode : 0x1 cpu MHz : 2194.916 cache size : 4096 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtsse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase bmi1 hle avx2 sm bogomips : 4389.83 clflush size : 64 cache_alignment : 64 address sizes : 46 bits physical, 48 bits virtual power management:
显示物理CPU个数的命令
[root@10-13-92-107 root]# cat /proc/cpuinfo | grep "physical id" |sort |uniq |wc -l
1
查看每个物理CPU中的core的个数(即核数)的命令
[root@10-13-92-107 root]# cat /proc/cpuinfo | grep "cpu cores"|uniq
cpu cores : 1
显示逻辑CPU的个数的命令
[root@10-13-92-107 root]# cat /proc/cpuinfo | grep "processor" |wc -l
1
物理CPU个数*核数 = 逻辑CPU数,如果不相等,那么使用超线程技术
2.查看Linux服务器的内存使用情况
free -m
[root@10-13-92-107 root]# free -m
total used free shared buff/cache available
Mem: 1935 1043 217 104 673 572
Swap: 511 446 65
free命令显示当前内存使用情况,m的意思指的是以M个字节显示内容
3.查看Linux服务器的硬盘使用情况
1)查看硬盘即分区信息
[root@10-13-92-107 root]# fdisk -l
Disk /dev/vda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000ba0a4
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 41943039 20970496 83 Linux
2)检查文件系统的磁盘空间占用情况
[root@10-13-92-107 root]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 16G 4.2G 80% /
devtmpfs 958M 0 958M 0% /dev
tmpfs 968M 0 968M 0% /dev/shm
tmpfs 968M 114M 855M 12% /run
tmpfs 968M 0 968M 0% /sys/fs/cgroup
tmpfs 194M 0 194M 0% /run/user/0
3)查看磁盘的I/O性能
[root@10-13-92-107 root]# iostat -d -x -k 1 10
Linux 3.10.0-957.1.3.el7.x86_64 (10-13-92-107) 06/20/2020 _x86_64_ (1 CPU)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.01 0.07 0.37 1.54 29.16 7.44 38.28 0.02 12.03 57.10 1.27 0.56 0.11
vdb 0.00 0.00 0.00 0.00 0.00 0.00 43.27 0.00 0.45 0.45 0.00 0.31 0.00
%util(一秒中有百分之多少的时间用于I/O操作)接近100%,则说明产生的I/O请求太多,I/O系统已经满负荷,磁盘IO可能存在瓶颈。
await(平均每次设备I/O操作的等待时间(毫秒))。这个响应时间应该低于5ms,如果大于5ms就表示磁盘I/O压力很大,这个时候就可以考虑更换响应速度更快的磁盘等其他方法。
4)查看特定目录的大小
[root@10-13-92-107 /]# du -sh app
2.0G app
##查看目录下前十大小的文件夹或者文件
[root@10-13-92-107 /]# du -cks * |sort -rn |head -n 10
15966900 total
5972200 var
2768564 data
1994864 app
1941460 usr
1802400 opt
524288 swapfile
422496 root
190756 home
115968 run
5)dd命令
可以把指定的输入文件复制到指定的输出文件中,并且在复制过程中可以进行格式转换
4.查看Linux系统的平均负载
平均负载:特定时间间隔内运行队列中的平均进程数可以反映系统的繁忙程度。
[root@10-13-92-107 /]# uptime
01:22:26 up 384 days, 15:39, 1 user, load average: 0.10, 0.13, 0.09
load average的三个值代表的是1分钟、5分钟、15分钟内进程队列中的平均进程数量,所以一般的话这三个值不能大于系统的逻辑CPU的个数。如果长期处于逻辑CPU的个数,说明CPU很繁忙,负载很高,可能会影响系统性能。当然也可以使用top命令动态查看系统的负载情况
5.查看Linux系统的其他参数
1)用vmstat监控Linux系统的整体性能
[root@10-13-92-107 /]# vmstat 1 4
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 457600 78684 4 801960 0 0 29 7 0 0 2 2 96 0 0
0 0 457600 78188 4 802028 0 0 0 0 288 789 1 0 99 0 0
0 0 457600 73752 4 802264 0 0 0 0 389 885 5 2 93 0 0
0 0 457600 73752 4 802288 0 0 0 0 272 751 1 0 99 0 0
2)查看系统内核
[root@10-13-92-107 /]# uname -a
Linux 10-13-92-107 3.10.0-957.1.3.el7.x86_64 #1 SMP Thu Nov 29 14:49:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
3)查看服务器使用的Linux发行版的相关信息
4)查看系统已载入的相关模块
lsmod |grep ip_vs
5)在Linux下查找PCI设置
通过lspci命令,能列出机器中的PCI设备信息,比如声卡、显卡、Modem、网卡等的信息,也能列出主板集成设备信息。
[root@10-13-92-107 /]# lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
00:03.0 Unclassified device [00ff]: Red Hat, Inc. Virtio memory balloon
00:04.0 Ethernet controller: Red Hat, Inc. Virtio network device
00:05.0 Communication controller: Red Hat, Inc. Virtio console
00:06.0 SCSI storage controller: Red Hat, Inc. Virtio block device
00:07.0 SCSI storage controller: Red Hat, Inc. Virtio block device
1.配置Linux服务器的网络
在配置Linux网络设备时,他们分别被赋予别名,该别名由一个描述性的缩略词和一个编号组成。
与网卡相关的TCP/IP网络配置文件是/etc/sysconfig/network-scripts/ifcfg-eth0
##网卡的名称 DEVICE=eth0 ##MAC地址 HWADDR=52:54:00:69:16:06 ##ip地址 IPADDR=10.13.92.107 ##子网掩码 NETMASK=255.255.0.0 ##网关IP GATEWAY=10.13.0.1 ##启动时IP取得的协议,如果是动态主机,要改成dhcp BOOTPROTO=none ##表示允许从DHCP获得的DNS覆盖本地的DNS PEERDNS=yes ##表示不允许普通用户修改配置 USERCTL=no NM_CONTROLLED=no ##开启启动网卡 ONBOOT=yes MTU=1454 ##域名服务器 DNS1=10.13.255.1 DNS2=10.13.255.2 DNS3=114.114.114.114
修改机器的hostname名
路径:/etc/sysconfig/network
HOSTNAME=10-13-92-107
NOZEROCONF=yes
修改主机名查询静态表/etc/hosts
127.0.0.1 10-13-92-107
10.13.92.107 10-13-92-107
配置DNS域名解析服务器
nameserver 10.13.255.1
nameserver 10.13.255.2
nameserver 114.114.114.114
2.查看Linux服务器的网络连接
ifconfig、ping、netstat等命令,都是查看网络连接方面的命令,很实用。
ifconfig用来显示所有网络接口的详细情况,可以显示/设置IP地址、子网掩码、广播地址等
[root@10-13-92-107 network-scripts]# ifconfig -a eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1454 inet 10.13.92.107 netmask 255.255.0.0 broadcast 10.13.255.255 ether 52:54:00:69:16:06 txqueuelen 1000 (Ethernet) RX packets 98557360 bytes 18689546482 (17.4 GiB) RX errors 0 dropped 1149 overruns 0 frame 0 TX packets 115800221 bytes 22285985524 (20.7 GiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 loop txqueuelen 1000 (Local Loopback) RX packets 16097110 bytes 14881214435 (13.8 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 16097110 bytes 14881214435 (13.8 GiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ping命令用于检查网络上某台主机是否为活动状态或发生故障。利用TCP/IP协议族中的ICMP协议。ping命令的执行过程中同样会涉及路由、地址解析、网关等。
netstat命令的功能是显示网络连接、路由表和网络接口的信息,可以让用户得知目前都有那些网络连接正在运作。
[root@10-13-92-107 root]# netstat -an |grep -v unix
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 10.13.92.107:7848 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:33997 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8848 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN
参数中的state的含义如下所示:
LISTEN:侦听来自远方的TCP端口的连接请求
SYN_SENT:在发送连接请求后等待匹配的连接请求
SYN_RECEIVED:在收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED:代表一个打开的连接,我们常用此作并发连接数
FIN_WAIT1:等待远程TCP连接中断请求,或限期的连接中断请求的确认
FIN_WAIT2:从远程TCP等待连接中断请求
CLOSE_WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST_ACK:等待远程TCP对连接中断的确认
TIME_WATI:等待足够的时间以确保远程TCP接受到连接中断请求的确认
CLOSED:没有任何连接专题
查看路由表
netstat -rn 或者route -n
[root@10-13-92-107 root]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.13.0.1 0.0.0.0 UG 0 0 0 eth0
10.13.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
跟踪一个网络地址
[root@10-13-92-107 root]# traceroute www.163.com
traceroute to www.163.com (183.47.233.10), 30 hops max, 60 byte packets
1 172.27.38.146 (172.27.38.146) 2.844 ms 2.791 ms 2.797 ms
2 172.31.169.145 (172.31.169.145) 1.140 ms 172.31.173.149 (172.31.173.149) 1.100 ms 1.118 ms
3 172.31.172.217 (172.31.172.217) 1.687 ms 172.31.168.217 (172.31.168.217) 1.683 ms 172.31.172.217 (172.31.172.217) 1.674 ms
4 172.31.168.193 (172.31.168.193) 3.531 ms 172.31.172.193 (172.31.172.193) 1.936 ms 1.920 ms
5 172.31.175.130 (172.31.175.130) 14.915 ms 14.903 ms 14.887 ms
....省略......
查询一台机器的IP地址机器对应的域名
[root@10-13-92-107 root]# nslookup
> www.baidu.com
Server: 10.13.255.1
Address: 10.13.255.1#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 14.215.177.38
Name: www.a.shifen.com
Address: 14.215.177.39
>exit
[root@10-13-92-107 root]# dig www.baidu.com ; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7_5.1 <<>> www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45007 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 13, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 143 IN CNAME www.a.shifen.com. www.a.shifen.com. 117 IN A 14.215.177.38 www.a.shifen.com. 117 IN A 14.215.177.39 ;; AUTHORITY SECTION: . 408 IN NS i.root-servers.net. . 408 IN NS e.root-servers.net. . 408 IN NS l.root-servers.net. . 408 IN NS m.root-servers.net. . 408 IN NS d.root-servers.net. . 408 IN NS h.root-servers.net. . 408 IN NS f.root-servers.net. . 408 IN NS b.root-servers.net. . 408 IN NS c.root-servers.net. . 408 IN NS a.root-servers.net. . 408 IN NS j.root-servers.net. . 408 IN NS g.root-servers.net. . 408 IN NS k.root-servers.net. ;; Query time: 1 msec ;; SERVER: 10.13.255.1#53(10.13.255.1) ;; WHEN: Sat Jun 20 14:15:19 CST 2020 ;; MSG SIZE rcvd: 312
finger查询用户的信息
列出当前系统打开文件的工具
在UNIX环境下,任何事物都是以文件的形式存在的,通过文件不仅仅可以访问常规数据,还可以访问连接和硬件
最常用的的命令是lsot -i:22查看端口信息被那些程序占用
[root@10-13-92-107 root]# lsof -i:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 12904 root 3u IPv4 278870567 0t0 TCP 10-13-92-107:ssh->113.88.138.209:14127 (ESTABLISHED)
sshd 30051 root 3u IPv4 58346446 0t0 TCP *:ssh (LISTEN)
sshd 30051 root 4u IPv6 58346448 0t0 TCP *:ssh (LISTEN)
查看打开的socket的情况
信息有包括端口相应的进程和进程名、PID、用户等,用的最多的是sockstat -4l,有些系统不支持
ps命令查看进程
最常用的是ps aux | grep java
动态显示服务器的进程信息
[root@10-13-92-107 root]# top -H
top - 14:31:22 up 385 days, 4:48, 1 user, load average: 0.00, 0.04, 0.05
Threads: 491 total, 8 running, 483 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.0 us, 0.7 sy, 0.0 ni, 98.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1981564 total, 85468 free, 1100348 used, 795748 buff/cache
KiB Swap: 524284 total, 66440 free, 457844 used. 540392 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 207812 2668 1372 S 0.3 0.1 61:40.43 systemd
9 root 20 0 0 0 0 S 0.3 0.0 84:24.83 rcu_sched
18727 rabbitmq 20 0 651748 27320 1276 S 0.3 1.4 1021:00 beam
在进入top命令的时候,可以使用相关命令:
P:根据CPU使用多少进行排序
T:根据时间、累计时间排序
q:退出top命令
M:根据使用内存的大小进行排序
t:切换显示内存信息
查找当前运行的进程,并列出匹配给定条件进程的pid
[root@10-13-92-107 root]# pgrep java
18868
24448
28120
终止进程的命令
kill命令可将指定的信息送至程序中。想Linux系统的内核发送一个系统操作信号和某个程序的进程标志号,然后系统内核就可以对进程标志好指定的进程进行操作。预设的信息为SIGTERM(15),可将指定程序终止。若仍然无法终止该程序,则使用SIGKILL(9)信息尝试强制删除程序。
当需要中断一个前台进程的使用,可以使用Ctrl+C组合键;但是对于一个后台进程来说,就需要使用kill命令。
killall命令的作用是通过程序名字,直接杀死所有进程。
在CentOS/FreeBSD/Windows下添加静态路由
route add 192.168.4.0 mask 255.255.255.0 192.168.4.2
使用-p与route add命令共同使用时,可以进行持久化操作。
系统日志syslog.conf的配置详解
/etc/syslog.conf的规则如下:
facility.level.action
facility(设备)定义了日志信息的范围
kern:内核信息,首先通过klogd传递
mail:与电子邮件有关的信息
user:由用户程序生成的信息
*:代表除了mark意外的所有功能
level(优先级)定义了消息的紧急程度,由严重程度由高到低顺序:
emerg:该系统不可见
alert:需要立即被修改的条件
crit:危机情况
err:错误消息,等同与error
waring:预警新,等同于warn
notice:具有重要的普通条件
info:提供信息的消息
debug:不包含函数条件或问题的其他信息
none:没有重要即,通常用于排错
*:代表所有级别
selector(选择条件)
action(处理方案)
Linux下的日志维护技巧
系统日志:/var/log/message
系统安全日志:/var/log/secure记录登入系统存取数据的文件,例如POP3、SSH、Telnet、FTP
记录登录者的数据:/var/log/wtmp记录登入者的信息数据(二进制文件),要使用last命令查看
记录系统时间:/var/log/lastlog记录每个使用者最近登入系统的时间。
服务器的邮件日志:/var/log/message
输出iptables日志到一个指定文件中:默认输出到/var/log/messages文件中
日志文件的专业工具:推荐使用专业工具(如Awstats、Webalizer)来分析
用dmesg查看启动消息:/var/log/dmesg
关于cron的日志:默认情况下,在crontab中执行的日志卸载/var/log下,我们可以先看看/etc/syslog.conf里的配置,通过命令grep cron/etc/syslog.conf来查看。
用Shell脚本分析日志
如何根据服务器应用来选购服务器
1.服务器运行什么应用
2.需要支持多少用户访问
3.需要多大空间来存储数据
4.业务有多重要
5.服务器网卡方面的考虑
6.安全方面的考虑
7.机架合理化安排了没
8.服务器的价格超出项目预算了没
CentOS最小化安装后的优化
1.关闭不需要的服务
ntsysv列出需要启动的服务,未列出的服务一律关闭
crond:自动计划任务
network:已配置网络接口的脚本程序服务
sshd:openssh服务器守护进程
syslog:linux日志系统服务
关闭iptables代码:service iptables stop && chkconfig iptables off
关闭SELinux: vim /etc/selinux/config
2.关闭不需要的tty
先编辑/etc/inittab
使用init q
3.对TCP/IP网络参数进行调整
echo ‘net.ipv4.tcp_syncookies=1’ >> /etc/sysct.conf
使此内核改动立即生效:sysctl -p
4.修改SHELL命令的history记录个数
vim /etc/profile找到HISTSIZE=1000并改为HISTSIZE=100
不重启系统就让其生效,source /etc/profile
5.定时校正服务器的时间
yum install ntp
6.停止打印服务
7.调整Linux的最大文件打开数
/etc/security/limit.conf命令在最后一行添加:
*soft nofile 60000
*hard nofile 65535
需要重启
正确方法,在/etc/rc.local文件中添加一下命令行
ulimit -SHn 65535
可以用如下脚本查看:
#!/bin/bash
for pid in 'ps aux|grep nginx |grep -v grep |awk '{print $2}'
do
cat /proc/${pid}/limits |grep 'Max open files'
done
8.启动网卡
DEVICE=eth0
HWADDR=52:54:00:69:16:06
IPADDR=10.13.92.107
NETMASK=255.255.0.0
GATEWAY=10.13.0.1
BOOTPROTO=none
PEERDNS=yes
USERCTL=no
NM_CONTROLLED=no
ONBOOT=yes
MTU=1454
DNS1=10.13.255.1
DNS2=10.13.255.2
DNS3=114.114.114.114
9.关闭写磁盘I/O功能
atime:对此文件的访问时间
ctime:此文件inode发生变化的时间
mtime:此文件的修改时间
优化Linux下的内核TCP参数以提高系统性能
可以编写vim /etc/sysctl.conf文件
改了文件后是内核配置立马生效:/sbin/sysctl -p
CentOS下的监控工具
Nagios/Cacti和MRTC、NTOP、Iptraf
监控的服务器基础选项
主机存活的状态:Nagios采用通过ping来实现对主机是否存活的检测机制
系统load值:系统Load值的最关键含义是CPU运行中等待的数量,从侧面反映了CPU繁忙程序,只不过load值并不直接等于等待队列中的进程数量
Cpu使用率
磁盘I/O量:反映磁盘I/O直接反映了系统磁盘繁忙情况
swap进出量
网络流量
僵死进程的监控
在LVS+Keeepalived或Nginx+Keepalived中
数据库MySQL的主从复制状态
工作目录中直接执行
[xxx bin]$ ./jps
29879 Jps
绝对路径执行
[xxx bin]$ pwd
/usr/java/jdk1.8.0_45/bin
[xxx bin]$ `pwd`/jps
28764 Jps
sh命令执行
[xxx]$sh test.sh
shell环境执行
[xxx scripts]$ . test.sh
Hello Shell
[xxx scripts]$ source test.sh
Hello Shell
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。