随着人们对linux的接受,越来越多的用户在使用Linux的过程中,遇到了内核一些问题,比如有时候进程会变为阻塞,然后进程性能就会受到一定影响,下面就来介绍Linux下处理阻塞进程的方法。
创新互联是专业的雅安网站建设公司,雅安接单;提供成都做网站、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行雅安网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
首先要确定进程是不是已经死在一个阻塞状态。我们可以使用ps或者top命令查看一下,看看状态是不是D(表示阻塞状态)的。
[root@zhangyz /]# ps -ef |grep Tomcat
root 3600 1667 0 14:31 ? 00:00:00 /OPT/jdk1.7.0_55/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/opt/apache-tomcat-8.0.20/conf/logging.properties -Djava.endorsed.dirs=/opt/apache-tomcat-8.0.20/endorsed -classpath /opt/apache-tomcat-8.0.20/bin/bootstrap.jar:/opt/apache-tomcat-8.0.20/bin/tomcat-juli.jar -Dcatalina.base=/opt/apache-tomcat-8.0.20 -Dcatalina.home=/opt/apache-tomcat-8.0.20 -Djava.io.tmpdir=/opt/apache-tomcat-8.0.20/temp org.apache.catalina.startup.Bootstrap start
从上面可以看出,这个Tomcat进程状态是D,这就表明它已经被内核放入了内核队列。
如果进程可以被 kill 掉,那么可以利用kill 命令来终止一个进程,也可以使用下面的命令来强制 kill 掉一个进程:
[root@zhangyz /]# kill -9 3600
如果无法用 kill -9 强制终止进程,可以采用 strace 运行 strace -p [进程ID],可以查看它当前调用的那个系统调用出现什么问题,或者用gdb运行-attach [进程ID] 进行调试,看是什么函数没有正确返回,或者卡在哪里。
有时进程被阻塞不是因为任何代码问题,而可能是另外一个进程造成的资源冲突,比如文件句柄资源等,我们可以尝试增加该资源的可用性,就可以解决。
然后我们可以观察一下与当前内核版本相关的文章,看看是否存在已知的 BUG,如果是的话,可以通过升级内核来解决。
最后,如果以上方法都没有结果,建议及时联系 Kernel.org 的社区,解决问题或求助。
总而言之,处理Linux下阻塞进程,我们可以通过以上几步来解决,但要保证这些操作,一定要保持系统的平稳性和安全性,以免发生意想不到的后果。
香港服务器选创新互联,2H2G首月10元开通。
创新互联(www.cdcxhl.com)互联网服务提供商,拥有超过10年的服务器租用、服务器托管、云服务器、虚拟主机、网站系统开发经验。专业提供云主机、虚拟主机、域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。
当前题目:Linux下阻塞进程的处理方法(linux阻塞进程)
标题链接:http://www.shufengxianlan.com/qtweb/news40/210240.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联