星彩网app下载:运行规范难点,一次服务器磁盘

  继几天前服务器上采纳 CPU占用过高 前边该使用宕掉了今后       java 二次CPU占用过高难点的各个调查及化解

作为一名合格的 Linux 运行程序员,必需要有意气风发套清晰、显明的解决故障思路,当难点应运而生时,技巧便捷定位、化解难点,这里给出一个管理难题的雷同思路:

安排路线:
Tomcat 7.0.11 /usr/local/tomcat
JDK 7 /usr/java/jdk1.7.0
MySQL 5.5.15

 星彩网app下载 1

 

Eclipse /usr/local/eclipse(开采工具可选卡塔尔国

安装描述:

JDK安装下载rpm,安装在/usr/java/jdk1.7.0 (

tomcat 的装置很简短,只必要下载Binary Distributions (下载地址: ),解压到/usr/local/tomcat.

MySQL5.5.15装置相称的server和client

rpm包安装参谋命令:
rpm -ivh xxx.rpm 安装rpm包
rpm -qa --last | less 遵照安装日期展现已经安装的包
rpm -qa |grep mysql -i 查询系统是不是安装mysql包(-i,忽视大小写)
rpm -e 删除安装的软件包
rpm -e mysql* --nodpes 强制删除相关的软件包
rpm --test 测量试验安装
rpm -qi 查询mysql套件的印证质感
rpm -qpl xxx.rpm 查看rpm包内含的内容.
rpm -qc[d] 设定档与表明档
rpm -Uvh 进级安装
rpmbuild --bb SPECS/xxx.spec 重新装将xxx.spec编写翻译成rpm包.
rpmbuild --rebuild packagename.src.rpm 重新把.src.rpm编译成rpm包.

源码编写翻译安装(杰出)
./configure 检查系统音信(./configure --help | more 帮忙消息,能够看看有关的参数设定)
make clean 铲除从前留下的文件
make 编译
make install 安装

不久前又出新了更严重的标题     今日消除完标题  前日早些时候 现身了系统不能登陆  查询日志定位应该数数据库的主题材料

  • 强调报错提醒音信:各样错误的现身,都以付诸错误提示消息,经常景况下这些提示基本恒定了难题的外地,因而一定要信赖这一个报错音讯,假若对那一个错误消息置之不理,难题永久得不到解决。

  • 翻开日记文件:临时候报错信息只是给出了难题的表面现象,要想更加尖锐的摸底难题,必得查占卜应的日志文件,而日志文件又分为系统日志文件(/var/log卡塔 尔(英语:State of Qatar)和动用的日志文件,结合这五个日志文件,平常就能够定位难点所在。

  • 解析、定位难点:那些历程是相比较复杂的,依据报错新闻,结合日志文件,同一时间还要酌量其余相关事态,最后找到引起难题的案由。

  • 解决难题:找到了难题应时而生的原委,消亡难题正是很简短的政工了。

注:源码包安装,常常先将文件解压,安装进程大约下面几步,具体说美素佳儿(Friso卡塔 尔(阿拉伯语:قطر‎(Nutrilon卡塔 尔(阿拉伯语:قطر‎般理念压后目录里的(INSTALL,READEME说明.)

rpm包安装注意难题:

反省是还是不是已经设置过,旧版本的卸载:

例如:
追寻在此之前是或不是具备mysql
命令:rpm -qa|grep -i mysql
去除命令:rpm -e --nodeps 包名
( rpm -ev mysql-4.1.12-3.RHEL4.1 )

寻找mysql的安装目录:
命令:find / -name mysql


遭逢变量
比如jdk ,tomcat 都已装好了,就足以安插境况变量了
听大人讲前边设定的路子,境遇变量应该如此设置:
export JAVA_HOME =/usr/java/jdk1.7.0
export TOMCAT_HOME=/usr/local/tomcat
export CLASSPATH=.:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar:$TOMCAT_HOME/common/lib:
export PATH=/usr/java/jdk1.7.0/bin

前边开掘是磁盘满了    其实如故前天的产出难题的以致,  死循环刷了极其多的日志,,导致磁盘空间不足  引致数据库读写出难点了,进而变成应用不可用

 

道理当然是那样的,具体设置景况变量的方法有众多,这里给出的是一贯在shell下进行的台本

启航/结束服务

当成功上述步骤后,我们就足以在shell下输入 命令:java
看java是或不是平常专门的学业。

启动tomcat:
切换到TOMCAT_HOME/bin 执行
./startup.sh
或执行:
./catalina.sh run
那三个都能够运营tomcat,差距是,前面一个能够查阅到详细音信!

停止tomcat时,
不经常大家实施命令
./catalina.sh stop
并不能够让tomcat停止,那是因为还应该有部分依附它的进度存在,


查看/杀进程
那么什么样杀死那几个经过?

举例说大家现在杀不死tomcat,那么大家意在查看8080端口被何人占用,执行以下命令
lsof -i:3306
这里lsof是指(list open files)
如此就能够列出装有有关的进度及其id
作者们能够透过以下命令杀死这一个经过
kill -9 processid (把processid换为相关进程id卡塔 尔(阿拉伯语:قطر‎

使用cd /  后 du -sh *  列出各文件夹的占用大小

从那一个流程可以看来,解决难题的经过正是解析、查找难题的历程,豆蔻梢头旦分明难点发生的原因,故障也就随时缓和了。

一时,缺憾的事情还有恐怕会时有爆发,会凌驾一些怎么也杀不死的僵死进度,那些近似只好够重启系统。

布局应用

将war放在webapps目录下
导入mysql

 

source test.sql

查看tomcat日志:

翻看log是杀绝难题的一贯。
日志分为两种,有服务运转日志,访谈日志等等
他们在/TOMCAT_HOME/logs下
里头访谈日志暗中同意是不曾拉开的。

如需展开:
在server.xml里的<host>标签下增进
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"

能够看见首倘若usr/   进入 usr  继续看磁盘占用

结合方面介绍的 Linux 运转难点的解决思路后,上边大家选择了6个比较优越的 Linux 运转难题,来会见是怎么样深入分析和消除的:

pattern="common" resolveHosts="false"/>

自家在tomcat6.0下开辟的基于ssh框架的java web应用在 tomcat5.5下怎么也跑不了,点击提交表单后,不跳转到action钦赐的调整器管理,原因就是tomcat版本的难题。

汤姆cat 7.0.11 /usr/local/tomcat JDK 7 /usr/java/jdk1.7.0 MySQL 5.5.15 Eclipse /usr/local/eclipse(开辟工具可选卡塔 尔(英语:State of Qatar)--------------------------------------------...

星彩网app下载 2

 

/usr/local文件夹照旧依然最大的

 

难题 1:文件系统破坏引致系统不能够运转

世袭步入/usr/local

Checking root filesystem

/dev/sda6 contains a file system with errors, check forced

An error occurred during the file system check

 

那一个错误能够见见,操作系统 / dev/sda6 分区文件系统现身了难点,这几个题目发生的机率异常高,经常引起这些难题的源委根本是系统猛然断电,引起文件系统结构不等同,日常情形下,解决此主题素材的章程是运用 fsck 命令,实行强制修复。

 

# umount /dev/sda6

# fsck.ext3 -y /dev/sda6

 

主题素材 2:“Argument list too long” 错误与解决措施

 

# crontab -e

编写制定完后保存退出后,报错 no space left on device

依照上边的报错领会到是磁盘空间满了,那么首先是反省磁盘空间,

 

# df -h

查看见是 / var 磁盘分区空间已经达到规定的标准 百分之百,至此定位了难题所在。是 / var 磁盘空间饱满招致,因为 crontab 会在保留时将文件音讯写到 / var 目录上面,然则那一个磁盘未有空间了,所以报错。

随着通过命令 du –sh * 命令检查 / var 目录上边包车型客车有着文件大概目录的深浅,发掘 / var/spool/clientmqueue 目录占用了 / var 整个分区大小的 十分九,那么 / var/spool/clientmqueue 目录下的公文都以怎么产生的,能还是不能删除,基本上都以邮件音信,能够去除

 

# rm *

/bin/rm :argument list too long

当在 linux 系统中希图传递太多参数给二个发令时,就能够现出 “argument list too long” 错误,那是 linux 系统间接以来都有的限定,查看那些范围能够透过命令 “getconf A凯雷德G_MAX” 来实现,

 

# getconf ARG_MAX

# more /etc/issue 查看版本

 

减轻方式:1、

# rm [a-n]* -rf

# rm [o-z]* -rf

2、使用 find 命令来删除

# find /var/spool/clientmqueue –type f –print –exec rm –f {} ;

3、通过 shell 脚本

#/bin/bash

RM_DIR=’/var/spool/clientmqueue’

cd $RM_DIR

for I in `ls`

do

rm –f $i

done

4、重新编写翻译内核

亟待手动扩展底子中抽成给命令行参数的页数,展开 kernel source 下边的include/linux/binfmts.h 文件,找到如下行:

#denfine MAX_ARG_PAGES 32

将 32 改为越来越大的值,举个例子 64 可能 128,然后再度编写翻译内核

星彩网app下载 3

 

主题材料 3:inode 耗尽引致应用故障

基本得以分明是日记文件太多了

 

顾客的后生可畏台 Oracle 数据库如枪炮在关机重启后,Oracle 监听不可能起动,提示报错 Linux error : No space left on device

从输出音讯看出来是因为磁盘耗尽招致监听不可能运转,因为 Oracle 在运转监听时必要创立监听日志文件,于是首先查看磁盘空间使用情状

 

# df -h

从磁盘输出新闻能够,全数的分区磁盘空间都还应该有剩余不菲,而 Oracle 监听写日记的不二秘诀在 / var 分区下,/var 下分区空间丰裕。

 

解决思路:

既是错误提醒语磁盘空间有关,这就深刻钻研关于磁盘空间的难题,在 linux 系统中对磁盘空间的占用分为几个部分:第叁个是物理磁盘空间,第叁个是 inode 节点所占用的磁盘空间,第八个是 linux 用来贮存在复信号量的上空,而平时接触比较多的是情理磁盘空间。既然不是物理磁盘空间的标题,接着就反省是或不是是 inode 节点耗尽的难题,通过执行命令 “df -i” 查看可用的 inode 节点。由输出结果看出确实是因为 inode 耗尽引致力不能及写入文件。

 

能够通过上边包车型大巴一声令下查看有个别磁盘分区 inode 的总和

# dumpe2fs -h /dev/sda3 |grep ‘Inode count’

各种 inode 都有叁个编号,操作系统用 inode 号码来区分不相同的文件,通过‘ls -i’命令能够查看文件名对应的 inode 号

 

黄金年代旦要查阅那么些文件更详实的 inode 新闻,能够透过 stat 命令来兑现

# stat install.log

化解难题

# find /var/spool/clientmqueue/ -name “*” -exec rm -rf {} ;

理清掉一部分日志  mysql就符合规律了,  应用也符合规律了,   故而规整了瞬间服务器的磁盘, 防止后一次再次产生磁盘不足的情形

 

难点 4:文件已经删除,但是空间未有自由的由来

干脆本次现身的标题都是黄金时代对之中的接纳,  现身了难题影响范围有限

 

运营监察和控制系统一发布来文告,报告生机勃勃台服务器空间满了,登录服务器查看,根分区确实满了,这里先说一下服务器的有的刨除计谋,由于 linux 未有回笼站作用,所以线上服务器上具有要去除的文件都会先移到系统 / tmp 目录下,然后依期清除 / tmp 目录下的数额。那几个宗旨自身未有何样难题,可是通过检查开采那台服务器的系统一分配区中并不曾独自划分 / tmp 分区,那样 / tmp 下的数据实际上占用根分区的上空,既然找到了难点,那么删除 / tmp 目录下一些以权谋私空间异常的大的数据文件就可以。

 

# du -sh /tmp/* | sort -nr |head -3

经过命令发现在 / tmp 目录下有个 66G 大小的文本 access_log,这一个文件应当是 apache 发生的寻访日志文件,从日记大小来看,应该是相当久未有清理的 apache 日志文件了,基本判断是其一文件招致的根空间爆满,在肯定此文件可以去除后,实行如下删除命令,

# rm /tmp/access_Iog

# df -h

 

从输出来看,根分区空间依旧未有自由,那是怎么回事

貌似的话不会身不由己删除文件后空中不自由的意况,不过也设有分裂,比如文件进程锁定,或许有进程向来在向这几个文件写多少,要领悟那几个题目,就需求懂得linux 下文件的仓库储存机制和积存结构。

 

几个文件在文件系统中贮存分为八个部分:数据部分和指针部分,指针位于文件系统的 meta-data 中,在将数据删除后,这么些指针就从 meta-data 中解除了,而数据部分存储在磁盘中。在将数据对应的指针从 meta-data 中解除后,文件数量部分占用的长空就可以被隐瞒并写入新的开始和结果,之所以现身删除 access_log 文件后,空间还向来不自由,正是因为 httpd 进度还在直接向那些文件写入内容,引致就算删除了 access_Ilog 文件,但是由于经过锁定,文件对应的指针部分从没从 meta-data 中淹没,而鉴于指针并未删除,系统基本就以为文件并未被剔除,由此通过 df 命令查询空间未有释放。

 

标题排查:

既是有了解决思路,那么接下去看看是否有经过一贯在向 access_log 文件中写入数据,这里供给用到 linux 下的 losf 命令,通过那么些命令能够拿走一个依旧被应用程序占用的已删除文件列表

 

# lsof | grep delete

从出口可以看来,/tmp/access_log 文件被进度 httpd 锁定,而 httpd 进程还一向向这些文件写入日志数据,最终一列的‘deleted’状态表明那个日志文件已经被删去,然则出于经过还在直接向此文件写入数据,由此空间未有释放。

 

解决难题:

到此地难题就基本排查清楚了,消除那意气风发类难题的方法有无数,最简易的法子便是停业大概重启 httpd 进度,当然重启操作系统也得以。可是那些实际不是最好的点子,对待这种经过不停对文本写日记的操作,要自由文件占用的磁盘空间,最佳的诀如若在线清空那么些文件,具体能够经过如下命令达成:

# echo “”>/tmp/access_log

 

由此这种办法,磁盘空间不但能够即时释放,也得以维持进城继续向文件写入日志,这种艺术常常用来在线清理 apache /tomcat/nginx 等 web 服务发生的日记文件。

 

主题素材 5:"too many open files" 错误与减轻格局

 

难题现象:那是八个基于 java 的 web 应用系统,在后台加多数据时提示不可能增多,于是登入服务器查看 tomcat 日志,发掘如下卓殊音讯,java.io.IOException: Too many open files

 

由此这几个报错新闻,基本决断是系统能够用的文书叙述符非常不足了,由于 tomcat 服务室系统 www 客商运转的,于是以 www 客商登录系统,通过 ulimit –n 命令查看系统能够张开最大文件陈述符的多寡,输出如下:

$ ulimit -n

65535

 

能够看见那台服务器设置的最大能够张开的文本陈诉符已是 65535 了,这么大的值应该丰裕了,然则为啥提醒那样的错误呢

解决思路,那些案例涉及 ulimit 命令的应用

 

在运用 ulimit 时,有以下两种选取办法:

 

1、 在顾客碰着变量中投入

假定顾客使用的是 bash,那么能够在顾客目录的蒙受变量文件. bashrc 或许. bash_profile 中步入 “ulimit –u128” 来界定客商最多能够采用 128 个进程

2、 在应用程序的启航脚本中投入

若是应用程序是 tomcat,那么能够再 tomcat 的启航脚本 startup.sh 中投入‘ulimit -n 65535’来约束客商最多能够使用 65535 个文本呈报符

3、 直接在 shell 命令终端推行 ulimit 命令

这种方式的财富节制只是在实施命令的顶峰生效,在脱离只怕和倒闭终端后,设置失效,而且这么些设置不影响其它shell 终端

 

消除难点:

 

在掌握 ulimit 知识后,接着上面包车型地铁案例,既然 ulimit 设置没一时,那么显然是设置未有收效引致的,接下去检查下运行 tomcat 的 www 客户情形变量是或不是增多 ulimit 节制,检查后发觉,www 顾客并无 ulimit 限定。于是继续检查 tomcat 运行脚本 startup.sh 文件是还是不是增加了 ulimit 节制,检查后意识也绝非增加。最终考略是不是将约束加到了 limits.conf 文件中,于是检查 limits.conf 文件,操作如下

# cat /etc/security/limits.conf | grep www

www soft nofile 65535

www hard nofile 65535

 

从出口可以见到,ulimit 限定加在 limits.conf 文件中,既然节制已经增添了,配置也一直不什么错,为什么还有大概会报错,经过盘算,推断只有生机勃勃种可能,那正是tomcat 的启航时间早于 ulimit 财富约束的增长期,于是首先查看下 tomcat 运维时间,操作如下

# uptime

Up 283 days

# pgrep -f tomcat

4667

# ps -eo pid,lstart,etime|grep 4667

4667 Sat Jul 6 09;33:39 2013 77-05:26:02

 

从出口能够看来,这台服务器已经有 283 未有重启了,而 tomcat 是在 二〇一三 年 7 月 6 日 9 点运维的,运行了接近 77 天,接着继续看看 limits.conf 文件的改变时间,

# stat /etc/security/limits.conf

 

通过 stat 命令消除的看到,limits.conf 文件最后的更动时间是 二〇一二 年 7 月 12,晚于 tomcat 运行时间,清楚难题后,消除难点的法子超轻松,重启一下 tomcat 就能够了。

 

 

标题 6:Read-only file system 错误与减轻办法

拆解解析:现身那个主题素材的原故有那个种,恐怕是文件系统数据块出现不相同招致的,也大概是磁盘故障招致的,主流 ext3/ext4 文件系统都有很强的自己修复机制,对于简易的荒诞,文件系统日常都得以活动修复,当蒙受致命错误不能够修复的时候,文件系统为了保险数据黄金年代致性和安全,会不常屏蔽文件系统的写操作,讲文件系统 变为只读,今儿现身了上边的 “read-only file system” 现象。

 

手工业修复文件系统错误的命令式 fsck,在修补文件系统前,最佳卸载文件系统所在的磁盘分区

 

# umount /www/data

Umount : /www/data: device is busy

 

提示无法卸载,可能是以此磁盘中还会有文件对应的历程在运营,检查如下:

 

# fuser -m /dev/sdb1

/dev/sdb1: 8800

 

接着检查一下 8800 端口对应的如何进程,

 

# ps -ef |grep 8800

 

反省后发掘时 apache 没有停息,甘休 apache

 

# /usr/local/apache2/bin/apachectl stop

# umount /www/data

# fsck -V -a /dev/sdb1

# mount /dev/sdb1 /www/data

 

-----------------------------------------------------------------------------------华丽的分水线-------------------------------------------------------------------------------------------

在整理linux磁盘的时候  查了意气风发部分素材 故而规整一下 ,留给今后必要的时候的施用

df  -h  查看磁盘占用情形

du -sh *  步向有些人文件夹后  使用该命令能够看该公文夹下文件的占用情状

 

唯独开掘选用rm -rf  文件名   删除文件后    磁盘空间并未调换    

查询资料开采是    通过rm恐怕文件微电脑删除文件将会从文件系统的目录结构上杀绝链接(unlink).可是大器晚成旦文件是被伸开的(有多个进度正在选取卡塔尔,那么进度将依然能够读取该公文,磁盘空间也直接被挤占。

轻松的明白  正是rm  删除的是引用  假使援引对应的文件正在被运用,那些文件是不会真的的被剔除掉的

lsof | grep deleted

星彩网app下载 4

 

 

 

-----------------------------------------------------------------------------------华丽的分界线-------------------------------------------------------------------------------------------

 

顺手学习一下 lsof  (list opened files)

lsof全名list opened files,相当于列举系统中早就被展开的文本。大家都知道,linux意况中,任何事物都以文件,
设施是文本,目录是文件,以至sockets也是文件。所以,用好lsof命令,对平日的linux管理非常有帮助。

 lsof -i : 端口号     能够用来询问端口时候被挤占

lsof -i :8082

星彩网app下载 5

lsof  文件  展现开启文件/usr/local/tomcat_backend/logs/catalina.out的进程

lsof  /usr/local/tomcat_backend/logs/catalina.out

星彩网app下载 6

 lsof - p 进程PID 

lsof - p 1498

 看进程号为1498的长河打开了怎么文件

星彩网app下载 7

 

本文由星彩网app下载发布于星彩网app下载,转载请注明出处:星彩网app下载:运行规范难点,一次服务器磁盘

TAG标签: 星彩网app下载
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。