客户服务器是linux主机,配置有些低,也没作过特别的优化,装了个Jboss4.2.2GA,里面deploy了一个EJB3的系统,由于系统还在开发阶段,极其不稳定,也没有针对大数据作过特别的优化,数据库用了Postgres 8.2,面对数百张都是百万级以上的数据库表,大多数的系统功能都会涉及到四张以上的表,如果没有限定搜索条件,要不就是Postgres陷入无法自拔的地步,要不就是JBOSS直接占用CPU100%而久久不愿释放,当然这些都是系统未来需进行改进的地方,但当前服务器的某些进程死掉了,就得把它得干掉,对于我这样的linux新手来说,下面这些命令就是必需会的了。不过本文将不针对这些命令的具体使用,有需要的直接去GOOGLE或百度去搜这些命令,一堆一堆的相关网站就找到了,而且解释得更专业,本文仅是自我娱我的使用。。。

 

1、TOP命令:查看当前运行的进程,及系统资源消耗状况。

  有点类似Windows的系统资源管理器,有时可以看看CPU占用情况,有时可以看看内存占用状况,有时也可以看看硬盘IO使用情况,当然它支持多CPU运行状况查看,可以看到几个CPU的资源消耗状况。

  如果你是使用SSH连接至服务器进行操作,还可以开其中一个SSH窗口,运行TOP命令,以防止SSH连接超时(我就是这么干的,因为我要用SSH连接至客户数据库进行操作,要是它一不小心超时了,我又得花上近数分钟时间去重新连接SSH,并打开数据库,还得找到相应的表,烦)

 

2、KILL命令:直接杀掉进程,不过得知道进程的ID号。

  用了前面的TOP命令,可以清晰地看到进程的ID号,然后直接用KILL -9 ID号直接关掉进程了事,-9是强制关的意思,它还有很多用法,我就不介绍了,有需要大家上网搜(linux kill),如果不想太麻烦,也不想学太多相关的,就直接照着我之前说的用就行了。当然,因为TOP命令显示的进程数有限,说不定你没办法在TOP列表中看到所有相关的进程,如果KILL了一半没KILL一半,接下来的事会更加麻烦,所以才会有下面这个PS命令介绍的出现,它是用来准确找到你想要关掉的进程的ID号的实用命令来的。

 

3、PS命令:查看某程序相关的进程信息。

  客户打电话来投诉,系统崩溃了,用SSH连接到客户服务器,运行TOP,发现JBOSS占用CPU100%,而且数分钟也不肯释放,从客户的反馈来看,应该是客户在系统的某功能搜索了一些数据,但没有限定搜索字长度,等了许久无反应,之后连接其它地方也是无反应,此时第一反应是必须重启JBOSS ASAP,但是之前写的JBOSS关闭的SHELL代码也没办法让JBOSS停下来,客户可不允许系统停止多一分钟,于是得迅速把它相关的进程关掉(就好像WINDOWS的资源管理器里让它结束进程),可JBOSS的相关的进程倒底有哪些呢?

  这时我迅速在命令窗口输入:ps ax | grep jboss,哈哈,跟JBOSS相关的几个进程出现了(通常有3个),于是再不停手输入对应次kill -9 ID,关掉JBOSS,稍等片刻,再打开JBOSS,不出一分钟,系统又再次正常运行了。

  那么上面那段ps ax | grep jboss是什么意思呢,下面我简单介绍下:ps是列出系统进程的意思;ax是ps命令的参数,意思是列出所有正在运行的进程;“|”线是管道的意思,这在LINUX里是十分重要的概念,当然JAVA,甚至DOS也有这概念,一样的;grep是在源文本中查找的意思,jboss是grep的参数,意思是在源文本中查找jboss相关的行,并列出显示,那么源文本是指哪呢,此时,“|”线就是起这个作用,它把ps ax找出的结果转移到grep作为源文本了。

  本人能力有限,更多用法可以去其它地方参考相关的linux命令。