今天完成的事情:
配置好Resin,Tomcat,Jetty的Access.log(不同的WEB服务器的访问日志命名有区别),列出来每一个请求的响应时间,以MS为单位(jetty没配好,还有 响应时间没配置好)
修改Resin的内存配置,给当前的WEB程序分别设置1G内存,512兆内存,32兆内存,测试最小启动的大小。
用Top命令查看WEB程序的进程号,用Kill 命令 杀掉WEB进程(注意别用错了,如果杀掉了别人的进程,你大概就会被人杀掉)
重新启动服务,用Resin自带的停止脚本,并停止服务,思考Kill命令和停止脚本的区别(明天思考)
同时碰到会做的任务和不会做的任务,先做会做的
明天计划的事情:
思考Kill命令和停止脚本的区别(明天思考)
编写部署脚本,部署到服务器的开发环境,用Postman测试是否成功
本地编写代码,实现Service的功能,编写Junit,插入几条模拟数据,用Postman测本地接口,看结果是否正常
提交代码到SVN/Git,部署代码到服务器,用Postman测试服务器数据是否成功
遇到的问题:
做完任务,总觉得少点什么,想到 是不是要思考这个任务的目的是什么?但深究下去,深究到什么程度好呢?做任务已经有点吃力了
收获:
resin,配置日志
配置resin日志,例子:
<access-log path="logs/${host.name}/access.log"
archive-format="access-%Y%m%d.log.gz"
format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
rollover-size="10mb"
rollover-period="1D"/>
archive-format:
这个参数可以设置日志归档的格式,如设置为access-%Y%m%d.log可以在归档的时候自动按日期进行归档命名。另外还有一个特性需要说明的是,resin竟然支持自动压缩log文件,而且设置的方法非常简单,只要后缀名是gz就可以了,如access-%Y%m%d.log.gz,这样归档的时候会自动压缩,而且支持windows和linux系统。
format:
用于设置每条日志输出的格式,这个非常简单,而且通常使用系统内置的格式就可以了。
rollover-size:
用来设置归档日志文件的最小尺寸,单位可以设置成kb、mb等等,默认为1mb。
rollover-period:
用来设置归档日志文件的周期,单位可以是1D(一天)、1W(一周)、1M(一个月)等。
打开conf文件下的cluster-default.xml,加入
Pattern 属性的相关参数:
%a - 远程IP地址
%A - 本地IP地址
%b - 发送的字节数(Bytes sent), 不包括HTTP headers的字节,如果为0则展示'-'
%B - 发送的字节数(Bytes sent), 不包括HTTP headers的字节
%h - 远程主机名称(如果resolveHosts为false则展示IP)
%H - 请求协议
%l - 远程用户名,始终为'-'(Remote logical username from identd)
%m - 请求的方法(GET, POST等)
%p - 接受请求的本地端口
%q - 查询字符串,如果存在,有一个前置的'?'
%r - 请求的第一行(包括请求方法和请求的URI)
%s - response的HTTP状态码(200,404等)
%S - 用户的session ID
%t - 日期和时间,Common Log Format格式
%u - 被认证的远程用户, 不存在则展示'-'
%U - 请求URL路径
%v - 本地服务名
%D - 处理请求的时间,单位为毫秒
%T - 处理请求的时间,单位为秒
%I - 当前请求的线程名(can compare later with stacktraces)
不知道为啥会出现三个毫秒时间?
=======================================================
配置tomcat日志
打开service.xml文件,在最后面加上“%D”
启动Tomcat成功,但是端口没有出现
查看日志,是刚才配置错了
改了多次发现
端口成功出现
===============================================
根据师兄给的官方文档配日志,看不太懂,跟着做也出错了,于是还是看其他师兄的日报,跟着日报做
在控制台输出日志
启动jetty-logging日志模块,启动失败
java -jar start.jar --add-to-start=requestlog 添加日志模块命令
修改requestlog.ini,把注释给去掉
运行jetty,还是没看到响应时间,搜了一下,需要把 loglatency改成true
=========================
成功获取响应时间
执行速度:jetty>resin>tomcat
=========================================
修改Resin的内存配置,给当前的WEB程序分别设置1G内存,512兆内存,32兆内存,测试最小启动的大小。
1.打开cluster-default.xml 找到server-default 标签头
这里的jvm_args 就是jvm启动参数的配置,这里用的{}表达式读取某个配置文件的值
可以在resin.properties配置文件,jvm_args 处读取(默认注释)
可以这样定义设置
32兆内存
无法进去
日志会说是Java堆空间的问题
512兆内存
1G内存
毫无疑问,成功运行
============================================
Linux 各个命令的作用grep ps jamp top
ps:只会显示在当前控制台下的属于当前用户的进程,可见reain在Java上运行
一般使用 ps -es,查看系统上所有进程
ps只能显示某个特定点的信息。想要实时显示,需要用到top命令,可键入q退出top
grep 搜索数据 命令格式 grep [options] pattern [file]
1.查看java对应的进程号,某个应用
ps aux | grep java 刚刚被kill掉的Java又自动运行了
2.根据进程号查看对应的信息,比如端口啥的
netstat -anop | grep PID
3.查看端口对应的进程号 lsof -i:8088
===========================================
用Top命令查看WEB程序的进程号,用Kill 命令 杀掉WEB进程(注意别用错了,如果杀掉了别人的进程,你大概就会被人杀掉)
杀掉两个Java后,reain就不能运行了,kill只能使用PID而不能使用命令名
======================================
reain修改的内存的大小可以通过 这个命令jmap -heap PID 在这个地方看到
修改内存,重新启动reain
评论