问题描述:
可以描述为远程服务器卡顿,现象表现为:
①ping IP:总是存在着丢包;
②本地SSH连接会卡顿,连上后敲入命令的过程也是相当卡顿,同时敲回车执行,结果响应缓慢;
③服务器的CPU、内存(2核 4G)以及磁盘使用率维持在正常水平;
解决方法:
**ping指令的执行存在着25%丢包率说明网络比较拥堵,或者是服务器负载较高。**一开始以为的远程服务器所在网络问题,但是隔了半天再连接发现服务器远程连接仍然卡顿。这时转为认定服务器服负载较高。
但是,服务器CPU、内存以及磁盘的使用率都保持在较为正常或者是低负载的范围内,服务器上也没有跑什么高性能要求的应用程序。多次登录远程服务器,发现内存使用率有时会高达90%以上,长期维持在85%以上,较低使用率的情况只是少数时间,推断存在某一进程大量占用内存资源,使得服务器卡顿,可能存在僵尸进程。
使用top命令查看各个进程的CPU、内存占用情况以及是否存在僵尸进程(这一部分忘记截图了,只能使用后期截图配合文字说明情况)。
其中自己设置的代理程序clash的RES(进程实际使用的内存量)一项高达1G多,远远超出其之前的水平,也超出其他应用的占用量。判断其程序异常,使用kill命令杀死相应进程。
bash
kill -9 PID
杀死后并没有实际效果,使用 netstat -nltp 命令发现clash程序自动重启了。只能杀死其父程序。
bash
cat /proc/PID/status
输出相应的进程对应的父进程ID
bash
kill -9 PPID
杀死父进程,之后再保险起见杀一遍clash程序,结果netstat发现clash还是自动重启了,我也没设置clash服务的自启动,不知道是什么原因。直接将clash的相关配置以及文件全部从服务器上删除,并再kill ppid以及pid。解决卡顿问题。多次执行ping指令执行发现,丢包率降为0%。SSH连接窗口命令的输入与执行也不再有问题。
一般的程序占用大量服务器资源,造成卡顿,结束相应进程即可,若是实在不行结束启动该进程的父进程也就行了。没想到我这clash程序还得删的彻彻底底才行。