- 浏览: 70981 次
- 性别:
- 来自: 北京
最新评论
文章列表
书籍的第一章讲的都是java的历史,没什么重点,略去
这一章主要讲java内存区域与内存溢出异常
1 运行时数据区域
1)程序计数器--当前线程所执行的字节码的行号指示器,每个线程都有自己的程序计数器,此内存区域时唯一一个在java虚拟机规范中没有规定任何OutOfMemoryError情况的区域
2)java虚拟机栈--线程私有,生命周期与线程同步,它描述的时java方法执行的内存模型:每个方法在执行的同时,都会创建一个栈帧用于存储局部变量表,操作数栈,动态链表,方法出口等信息。如果线程请求深度大于虚拟机所允许的深度----StackOverflowError,如果扩展 ...
cookies 设置未成功情况分析
- 博客分类:
- cookies
1,问题描述:
用户登录之后,页面一直刷新,页面呈现空白,jessionId一直在变
http://dev.cbs.abc.com/base/;JSESSIONID=07fa59d4-822e-43a7-ad7f-f0f5f5d2c347
后端显示错误
[2019-03-11 19:16:59,411] INFO com.wiwj.abc.common.shiro.ShiroSession[32] - 调用ShiroSession方法
[2019-03-11 19:16:59,411] INFO com.wiwj.abc.common.shiro.ShiroSession[51 ...
141. Linked List Cycle
Given a linked list, determine if it has a cycle in it.
To represent a cycle in the given linked list, we use an integer pos which represents the position (0-indexed) in the linked list where tail connects to. If pos is -1, then there is no cycle in the linked list.
Ex ...
fastdfs nginx 生成缩略图
- 博客分类:
- fastdfs
nginx搭配fastdfs生成实时缩略图,并加水印
1,需要image_filter模块
2,添加反向代理的upstream模块
3,配置适配fastdfs访问的group正则表达式
4,增加_P1.jpg这种放置刷新方式
5,调试的时候,如果出现莫名奇妙的错误,请试试将location放置到server中的第一处
6,这种生成缩略图采用nginx自带模块,采用GD压缩,也可以使用GM模块,这种需要使用nginx支持lua模块,然后自己写lua表达式
location配置
location ~* /group(\d+)\/M00\/(\w+)\/(\w+)/(.+)\.( ...
linux 查询文件大小
- 博客分类:
- linux
ls -Rl | grep -E 'jpg|jpeg|png' | awk '{c += $5}END{print c/1024/1024/1024 "GB"}'
满足jpg,jpeg,png 三个中的某一个就行
问题描述:
2019/02/14 15:45:30 [crit] 12608#0: *109984486 connect() to 127.0.0.1:80 failed (99: Cannot assign requested address) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /picture/554495.jpg HTTP/1.0", upstream: "http://127.0.0.1:80/pictu ...
一次限流引发的思考及nginx限流实现
- 博客分类:
- nginx
前言:
nginx现在应用越来越广,nginx不仅可以做七层代理,也可以做四层代理,随着业务人数的增多,nginx处理请求的能力也是越来越好,但是后端的请求,对数据库的压力就会增大,所以当用户请求数量过大时,避免对数据库造成毁灭性的影响,只有对nginx进行降级处理。比如限流,或者增加tomcat应用,扩大内存等等,这篇文章主要是讲一些nginx限流的配置参考。
限流主要是看怎么限流,一般是限制访问请求数,不同系统的访问请求数不同,经查资料,可以查看nginx的每秒的请求数,作为参考。
nginx status 需要用到nginx自身的模块with ...
注:当tomcat并发用户量大的时候,单个jvm进程确实可能打开过多的文件句柄,这时会报java.net.SocketException:Too many open files错误。可使用下面步骤检查:
1.• ps -ef |grep tomcat 查看tomcat的进程ID,记录ID号,假设进程ID为10001
2• lsof -p 10001|wc -l 查看当前进程id为10001的 文件操作数
3• 使用命令:ulimit -a 查看每个用户允许打开的最大文件数
ulimit -n
4,查看tcp连接数量
netstat -n | awk '/^tcp/ {++ ...
1 下载goaccss包
wget http://tar.goaccess.io/goaccess-1.2.tar.gz
-------------------------------
tar -zxvf goaccess-1.2
---------------------
cd goaccess-1.2
-----------------------
./configure --prefix=/usr/local/goaccess --enable-geoip --enable-utf8
--------------------------
make && ...
tomcat 线程池的使用
- 博客分类:
- tomcat
1,应用背景:项目压力测试,要求同时支持并发数量8000(一秒钟1到2个请求,一直加到8000),5台tomcat配置(apache-tomcat-7.0.72)
线程池配置:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads=" ...
1, zookeeper日志查看
zoo.cfg中可以通过dataLogDir来配置zookeeper的事务日志的输出目录。
但是这些日志文件是二进制的,无法通过普通的查看名单看。需要通过org.apache.zookeeper.server.LogFormatter,这个工具类来查看。命令如下:
java -cp /opt/zookeeper/zookeeper-3.4.6.jar:/opt/zookeeper/lib/slf4j-api-1.6.1.jar org.apache.zookeeper.server.LogFormatter log.8000a39b7
需要给这两个 ...
1 现象
今天在uat环境压力测试的时候报如下错误
java.lang.RuntimeException: Timed out waiting for operation
at net.spy.memcached.internal.OperationFuture.get(OperationFuture.java:135)
at org.jasig.cas.ticket.registry.MemCacheTicketRegistry.updateTicket(MemCacheTicketRegistry.java:109)
at org.jasig.cas.ticket.r ...
linux redis 开机启动
- 博客分类:
- linux
1,问题描述:某天早上,听到业务系统反馈问题,如下代码
[2018-10-18 10:19:20,079] INFO O com.wiwj.cbs.common.shiro.ShiroSession[ion[86] - 调用setAttributes方法
方法redis.clients.jedis.exceptions.JedisConnectiectionException: Could not get a resource from the pool
at at redis.clients.util.Pool.getResource(Pce(ce(Pool.java:42)
...
进程与线程区别,以及各自的通信方式
- 博客分类:
- 操作系统
1, 区别
进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。
线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。
一个程序至少一个进程,一个进程至少一个线程。
2,进程之间的通信方式
1).无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
2).高级管道(popen):将另一个程序当做一个新的进程在当前程序进程中启动, ...
由于nginx日志在运行之后会一直变大,然后会占用空间,甚至会影响系统,故准备将日志定期切割,然后删除定期的日志,查了网上的办法,将两篇比较好的文章综合一下,算是有效的解决了问题。
解决思路: 利用shell命令写一个定时脚本,每天定时执行。这里面牵涉两点,1是shell命令,2 是定时执行
1 shell命令如下
#!/bin/bash
#Rotate the Nginx logs to prevent a single logfile from consuming too much disk space.
LOGS_PATH=/usr/local/nginx/logs
YE ...