常见问题
linux性能
客户反映服务器访问速度变慢
1.基本排查
- top命令看cpu负荷,超过70%证明cpu算力不够
- 查看网络连接数是否超出常态 netstat -an
- sar 命令查看网络流量
- 查看/var/log/messages有关键报错信息
2.怀疑硬盘有问题
- df -Th查看磁盘是不是磁盘已满
- dmesg看看是否网卡或者硬盘有问题
3.内存查看
- top命令查看负载,查看内存和swap是否过载,如果swap用量大证明内存不够
软件安装问题
软件安装不能执行或者冲突,有可能引起的是包问题,系统版本过低或者过高。常见的查看系统信息命令
命令 | 功能 |
# uname -r 3.10.0-1160.11.1.el7.x86_64 | 1.查看系统内核版本 |
# cat /proc/cpuinfo .... | cpu信息 |
# cat /proc/meminfo ...
| |
#cat /etc/system-release CentOS Linux release 7.9.2009 (Core) | 系统版本 |
#cat /etc/os-release CENTOS_MANTISBT_PROJECT="CentOS-7" | 系统详细版本 |
#uname -a Linux pcserver 3.10.0-1160.11.1.el7.x86_64 #1 SMP Fri Dec 18 16:34:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux | 服务器内详细信息 |
cat /proc/mounts sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0 proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0 /dev/mapper/centos-root / xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0 selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0 systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=35,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=10205 0 0 debugfs /sys/kernel/debug debugfs rw,relatime 0 0 hugetlbfs /dev/hugepages hugetlbfs rw,seclabel,relatime 0 0 mqueue /dev/mqueue mqueue rw,seclabel,relatime 0 0 nfsd /proc/fs/nfsd nfsd rw,relatime 0 0 /dev/mapper/centos-home /home xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0 /dev/sda1 /boot xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0 sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0 binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0 tmpfs /run/user/0 tmpfs rw,seclabel,nosuid,nodev,relatime,size=2452088k,mode=700 0 0 | |
# cat /proc/swaps Filename Type Size Used Priority /dev/dm-1 partition 12386300 79104 -2 | swap 信息 |
# mii-tool -v enp0s20u2 enp0s20u2: negotiated 100baseTx-FD flow-control, link ok product info: vendor 00:07:32, model 8 rev 2 basic mode: autonegotiation enabled basic status: autonegotiation complete, link ok capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control | 查看网卡是否连接交换机 |
数据库
- mysql数据库起不来
解决思路:
1)使用systemctl -l status mariadb查看出错信息,如果是配置文件出错,应该这里会有显示。起不来的话,也查看下3306端口是不是被占用,使用netstat -antpl 来查看
2)如果看不到明显出错信息,查看/var/log/maraidb/error.log. 查看服务软件的日志是最重要的一个方法。
3)如果查看不到有用信息,还需要查看/var/log/messages内容,这个log日志是syslog的日志,基本上系统级别的日志信息都会在此文件中体现。非常重要
- mysql数据库作为主服务器,不能作为master启动
1) 基本上查看错误日志,应该没啥提示。那么就是配置文件中没有启用log-bin,记住要server_id设置唯一的数字
- mysql数据库作为从服务器不能加入master作为slave机器。
1)master机器上有没有添加replication和slave的权限的用户让slave机器 访问
2)master上的防火墙是否没有关闭
3)slave机器上的change master命令是否将master_host写错,使用show slave status\G查看信息
4) 使用show processlist查看slave上的2个线程,io thead或sql thread是否启动
a) 如果是io线程没启动,应该是master上没有授权或者没有关闭防火墙
b)如果是sql线程没启动,那么应该是同步错误。
k8s
1) pod 在pengding状态
使用kubectl descibe pod podname查看出错信息
国外镜像是不是被墙
pvc是不是不成功
2)node节点加入不了
- 看api-server的地址是否拼写错误,
- api-server的机器防火墙是不是没关闭,
- 每台机器上的机器名称和/etc/hosts文件中的名称是否对应,IP地址是否写正确。
- 实在解决不了
- 删除当前用户目录下的.kube ,.pki文件夹
- 删除/etc/kubenetes文件夹
- 删除/var/lib/kubenetes文件夹
- 执行kubeadm reset 重置
- 再执行加入命令
3)dashboard权限不够,看不到资源
创建admin user用户
4)pod起不来,PVC不能成功
- pvc申请的读写方式和大小是否有匹配的PV,比如权限rwx的申请,不能匹配到rwo的pv
- pvc申请的大小必须小于pv
web服务器
-
nginx 404
- root配置错误,或者配置的root下确实没有该文件,
- 如果有这个文件,是否该资源被定向到其他的服务器,而其他的服务器返回了404
2) ningx 403
- 1. nginx进程能否读写该资源
- 2.文件夹下有没有默认的启动文件即:index的配置,index.html.index.htm index.php 等
- 3) 目录下有没有打开浏览文件夹的权限,如果2没有配置好。
3) php文件直接下载
- 1) php的配置,有没有转到9000端口
- 2)提供9000端口的服务器是否启动
- 提供9000端口的服务器(php-fpm)ip地址是否写错
- 防火墙是不是没有关闭
一般的解决思路
1)查看服务器的端口,是否被占用 netstat -lnp ,一般服务器的端口列表如下
http | 80 |
mysql | 3306 |
tomcat | 8080 |
https | 443 |
pop3 接收邮箱 | 110 |
dns域名解析 | 53 |
nfs | 2049 |
redis | 6379 |
mongodb | 27017 |
php-fpm | 9000 |
oracle数据库服务器 | 1521 |
sqlserver | 1433 |
smtp 邮件发送 | 25 |
远程访问 | 3389 |
ssh ssh协议,putty,scp,ssh命令 | 22 |
2)查看本服务的日志文件。一般在/var/log/xxxx/*.log
3)查看系统文件 /var/log/messages
4)防火墙 ,selinux