0
点赞
收藏
分享

微信扫一扫

系统运维相关问题排查方法

SWAP交换区使用率较高排查

1) 如何查看整体的swap空间使用情况

free 或 free –m 或 cat /proc/swaps 或 swapon –s

2) 如何查看当前交换区的访问情况

vmstat 或 vmstat 带参数,以显示swap区的SWAP In/Out;

3) 如何定位使用交换区较多的进程

使用top命令,按’f’键、’p’键并回车,在top界面中,会新增一列“swap”,可据此定位占用swap较多的进程。

4) 如何查看当前的swappiness参数值?

查看当前值可以用 sysctl –a |grep swappiness 命令,或者 cat /proc/sys/vm/swappiness;

5) 如果当前swappiness设置为60,要将此参数降低为10,并且立即生效,该如何操作(注意:只针对swappiness参数进行操作,不可连带其他参数一起刷新。?

​设置当前值为10且立即生效,有两种方法均可:

sysctl -w "vm.swappiness=10" 或 echo 10 > /proc/sys/vm/swappiness​

6) 如果要求在主机重启后亦自动设置为10,亦即永久调整该参数为10,该如何操作?

/etc/sysctl.conf 配置文件中。


nproc参数设置问题

1) Ulimit配置中的 nproc,含义是什么?

用户最大进程数

2) 如何查看当前该用户的nproc值

​在 /etc/security/limits.conf 配置文件中查看是否有针对该用户的设置;如果没有,则有可能是采用了默认值;

针对RHEL 6系统,在 /etc/security/limits.d/90-nproc.conf 中查看当前系统的默认值;

查看应用用户的.bash_profile(以bash为例)中,是否对ulimit  –n进行了设置。

如果该应用用户目前可以登录,那么可以通过 ulimit –n 命令查看当前用户的nproc设置。​

3) 如何查看某一个报错进程的nproc值

​用ps命令找到异常进程的PID;

cat /proc/$PID/limits​

4) 如何修改该用户的nproc配置?修改后是否对资源不足的进程立即生效?

修改 /etc/security/limits.conf 或 /etc/security/limits.d/90-nproc.conf 或 $HOME/.bash_profile 或 执行 ulimit –n XXXXX;修改后需重启应用进程才能对其生效。

Too many open files以及could not oopen session报错

这通常是由于此用户的ulimit资源参数中nofile的设置不足所致

​1) Ulimit配置中的 nproc,含义是什么?若此参数设置不足,会产生什么影响?

进程能够打开的最大文件句柄数(文件描述符数量);若此参数设置不足,会导致进程无法访问文件、无法创建新的socket链接,用户无法登录系统。

2) 如何查看当前系统中已经使用的文件句柄数?如何判断系统最大文件句柄数?

在 cat /proc/sys/fs/file-nr 输出结果中的第一个字段,即为当前系统中已经使用的文件句柄数;第3个字段是系统的最大文件句柄数,与cat /proc/sys/fs/file-max 的值相同。

3) 如何查看某一进程所使用的文件句柄

​使用ps 命令查看进程的PID;

ls –l /proc/$PID/fd 即可看到当前进程打开的文件句柄。​

4) 若使用 lsof 来统计某一用户所使用的文件句柄数,其实并不十分准确,为什么

lsof统计出的打开文件数,其中有些内容是不占用句柄的,所以使用lsof显示出的结果,比用户实际占用的文件句柄数要多。

/tmp文件系统使用率高,使用du -sk查看 整体容量不高

这种情况可能是存在“deleted“状态的文件占用了磁盘空间。可以使用 lsof 命令,查看是否在存在这种文件,并可定位其PID。造成这种问题的原因,通常是由于文件被删除时,相应的进程并未释放此文件的句柄,并持续写入该文件,致使该文件占用空间逐步增长。

查看当前物理/虚拟主机内存使用情况

​free 或 free –m或 cat /proc/meminfo

1) 查看swap空间使用情况

free 或 free –m 或 cat /proc/swaps 或 swapon –s 或 cat /proc/meminfo

2) 查看内核slab内存占用情况

slabtop 或 cat /proc/meminfo 或 cat /proc/slabinfo

3) 查找占用内存最高的进程

top 输入 M

4) 根据上述判断,若进程占用内存并不多,反而是内核slab中用作cache的内存非常大,则需要对其进行清理,请写出具体的操作命令

echo  2  > /proc/sys/vm/drop_caches

服务器系统cpu以及内存使用率较高处理

cpu使用率高

查看当前系统CPU使用情况。top命令或者vmstat命令,sar可以看历史,uptime可以看当前负载。

定位占用CPU资源最多的进程。top可以查看。

查看系统主要日志:在messages日志、dmesg命令中是否有软、硬件报错;

内存使用率高

查看当前系统内存使用情况(free命令)。

定位占用内存资源最多的进程。使用top命令,初步排查是否有占用内存较多的进程;

使用slabtop查看内核占用的内存;并在命令界面中按照cache使用量进行排序,定位内核中占用内存较多的cache;

查看系统主要日志:在messages日志、dmesg命令中是否有软、硬件报错;

操作系统HANG死

LINUX


这种情况下,通常日志系统(syslog)已经不再记录信息,只能对主机执行重启操作;对于配置了kdump的主机,可以手工触发vmcore

手工触发kdump: Alt + sysrq + c 系统自动生成kdump,并重新启动。 重新启动后以root用户登录;执行命令 sosreport 查看以下日志: /var/log/messages /var/log/dmesg 看是否有明显报错信息

WINDOWS虚拟机

当虚拟机无法正常工作时,需要收集两种日志信息:

第一需要收集虚拟机vmware-*.log,同虚拟机正常工作日志收集方法一致使用vm-support –w /**/***;

第二需要收集虚拟机的.vmss,.vmss文件为虚拟机的挂起文件,里面保存了虚拟机的内存状态信息,收集.vmss文件的方法步骤:

1、 挂起(suppend vm)虚拟机,此时在虚拟机的文件中生成.vmss文件(注:挂起虚拟机会造成虚拟机停机,处于静默状态,挂起虚拟机只适用于虚拟机不能正常工作、虚拟机黑屏和蓝屏的场景,切记虚拟机正常工作收集虚拟机的日志不要执行挂起【suppend】以免影响虚拟机上的生产业务系统)。

2、 通过浏览虚拟机所在的数据存储,在虚拟机所在的存储中找到与虚拟机名称对应的的文件夹,在文件夹中找到.vmss文件,把它下载下来

3、 把虚拟机状态从挂起(suppended status)状态恢复到power on状态

4、 当服务器挂起,需在控制台,按住右侧CTRL,同时连续按下SCROLL LOCK两次。系统自动进入蓝屏,等待dump进行至100%之后,手工重启服务器。


举报

相关推荐

0 条评论