排查问题类

一、公司里MySQL数据库经常使用cpu达到230%,服务器为4核心,如果不正常,如何排查?

1. 登录IDC机房服务器查看流量图,流量正常,故障与流量无关
2. 为了快速解决问题,可以先重启MySQL服务,在查sysql 进程,,启动之后,cpu使用率比较高
3. 登录数据库,show processlist  ;  查看当前正在执行的sql语句,发现几个表现出sending data 状态,sql 执行时间过长
4. 通知开发人员,查看这几个表有没有增加索引
5. 在MySQL配置文件里面,my.cnf 中增加参数 , tmp_table_size =300M  query_cache_size=1024M  cpu下降,cpu 还是超过了100%  ,网页打开比较慢
6. 登录MySQL  , 执行 show index from tablename   shending data 
7. 执行增加索引的语句,把出现sending data 几个表,全部加上索引
		ALTER TABLE table_name ADD INDEX index_name
8、 需要大量查询的表一定要加索引,指定相关规范。

二、网络排错基本思路:

	1. 在物理层检查连接是否正常
	2. 检查IP地址,子网掩码,网关的配置,尝试ping网关
	3. 检查DNS配置
	4. 检查iptables 防火墙规则,是否有禁止访问外网的策略
	5. 检查是否有人冒充网关,如: Arp 欺骗
	6. 查看网络内核参数

三、CPU飚高如何处理:

top 命令可以查看进程的CPU、内存等资源的使用情况。
vmstat命令可以查看系统整体的cpu,内存的使用情况
1.使用top直接终止cpu消耗大的进程:

      top命令查看对cpu消耗大的进程,直接输入"k",然后输入相应进程的PID号即可终止该进程。

在这里插入图片描述

2、通过top观察cpu很空闲,但是负载比较高的情况:

      load average 是对 CPU 负载的评估,其值越高,说明其任务队列越长,处于等待执行的任务越多。
      出现此种情况时,可能是由于僵死进程导致的。可以通过指令 ps -axjf  查看是否存在 D 状态进程。
      D 状态是指不可中断的睡眠状态。该状态的进程无法被 kill,也无法自行退出。只能通过恢复其依赖的资源或者重启系统来解决。

四、磁盘有剩余空间,但是存放文件的时候提示磁盘已满,如何处理

在磁盘上建立文件的时候需要两个条件:
    1.磁盘空间,
    2.需要有inode  任何一个满了都回提示设备没有空间。
	此处具体原因是由于磁盘的inode分配完了,导致提示磁盘满。
	可以使用df -ia查看磁盘详细信息。

	inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份;
  一部份是inode,而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。
另一部份是Block,Block是用来存储数据用的。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。

所以当服务器的Block虽然还有剩余,但inode已经用满,因此在创建新目录或文件时,系统提示磁盘空间不足。

查看我的/opt/file 分区 磁盘有剩余空间 却无法创建文件。
解决:
1、删除一些无用的文件或者文件夹,释放inode,释放出分区的一部分inode。

	不小心误删文件可以使用	extundelete	
	extundelete是基于Linux的一个数据恢复工具,它通过分析文件系统的日志,解析出所有文件的inode信息,
	从而可以恢复Linux下主流的ext3,ext4文件系统下被误删除的文件。

2、 用软连接将空闲分区 /tmp/file 目录连接到 /opt/file ,用 /tmp 分区的inode来缓解**/opt/file**分区的inode不足的问题
ln -s /tmp/file /opt/file

发布了38 篇原创文章 · 获赞 6 · 访问量 3358

猜你喜欢

转载自blog.csdn.net/SKTONE_SHUAI/article/details/104455780