
Trouble Shooting
文章平均质量分 68
ronon77
这个作者很懒,什么都没留下…
展开
-
Flask, set a cookie and then re-direct user
@app.route('/login', methods=['POST', 'GET'])def login(): errors = [] if request.method == 'POST': email = request.form['email'] password = request.form['password'] #Che...原创 2016-01-12 17:33:57 · 113 阅读 · 0 评论 -
查找jvm最耗时的函数
1、首先找到最耗时的进程idtop2、再查找此进程内最消耗cpu的线程top -Hp172073、把线程id转成16进制,以便查找printf "%x\n"173424、打印jvm线程栈jstack 17207> a.tmp5、查找线程栈vim a.tmp红色箭头指示的就是此线程当前正在运行的方法转自独立的思考...原创 2015-07-14 08:25:09 · 435 阅读 · 0 评论 -
java线上应用故障性异常处理,经验总结
一、摘要由于硬件问题、系统资源紧缺或者程序本身的BUG,Java服务在线上不可避免地会出现一些“系统性”故障,比如:服务性能明显下降、部分(或所有)接口超时或卡死等。其中部分故障隐藏颇深,对运维和开发造成长期困扰。笔者根据自己的学习和实践,总结出一套行之有效的“逐步排除”的方法,来快速定位Java服务线上“系统性”故障。 二、导言Java语言是广泛使用的语言,它具有跨平台的特性和...原创 2015-07-08 09:55:52 · 958 阅读 · 0 评论 -
记centos7安装特性遇到过的坑
上一篇介绍了centos7新增五大特性,这篇记安装遇到过的坑... 现在安装centos7类似用大白菜安装系统,有系统工具分区加密数据。 选配安装类型,如最小安装,web服务器安装等。网络选项最好是先开启,要不,装好系统好后,ifcfg-enp3s0 适别不了,以前centos6都是ifcfg-eth0, 出现network重启失败,如下:RHE...原创 2015-07-05 18:14:05 · 192 阅读 · 0 评论 -
动态页面正文部分中文乱码排障一例
公司网站一部分动态页面,早先使用apache+resin的架构运行,考虑到高并发访问下的响应性能问题,在前不久逐步开始用nginx替换掉了apache。 不过随后发现了一个问题,随意进入某一有分页的网页,第一页是正常的(因为静态化过了);点“下一页”,出来的页面两边正常,中间部分的标题、关键字等也正常,唯独每个标题下的正文无法正常显示。 因为有做过系统调整,所以第一反应就是新上的nginx配置...原创 2015-07-03 08:43:39 · 447 阅读 · 0 评论 -
nginx lua开发经验总结
使用nginx lua已经两三个月了,项目接开发完毕了,这几天准备上线并且跟高德地图对接。回顾下来lua在项目中占得必中还是比较大的,跟PHP的占比差不多持平了,因此在开发中遇到一些问题备忘一下1:content_by_lua中代码容量有限制,一般不要写太多代码,正常编写代码一般在100行左右(具体容量没有细心测哈哈,在4kb左右),如果超出了则重启nginx的时候会报too long p...原创 2015-07-03 08:43:08 · 251 阅读 · 0 评论 -
Lua的io库函数列表
1、io表调用方式:使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述 io表同样提供三种预定义的文件描述io.stdin,io.stdout,io.stderr 2、文件句柄直接调用方式,即使用file:XXX()函数方式进行操作,其中file为io.open()返回的文件句柄 多数I/O函数调用失败时返回nil加错误信息,有些函数成功时返回n...原创 2015-07-03 08:42:55 · 226 阅读 · 0 评论 -
通过Nginx,Tomcat访问日志(access log)记录请求耗时
一、Nginx通过$upstream_response_time $request_time统计请求和后台服务响应时间nginx.conf使用配置方式:log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$ht...原创 2015-07-02 09:27:17 · 215 阅读 · 0 评论 -
redis设置密码的两种方式
记一下redis两种密码设置形式,一种是在redis.conf设置requirepass 123456 另一种是config set requirepass 123456 config get requirepass ...原创 2015-07-01 16:33:52 · 347 阅读 · 0 评论 -
解决Tomcat数据连接池无法释放
近段时间,公司的检测中心报表系统(SMC)的开发人员时不时找到我,说用户老是出现无法登录的情况。前些日子因为手头上 有Jboss集群的测试工作,发现用户不能登录时,都是在Tomcat中将这个项目Reload一下就好了,不过只是治标而已,因为大概几个小时之后又会 再次出现无法登录的情况。今天上午,开发人员小毛又找到我,要我协助将这个问题根治一下,拖太久用户难保不投诉。简单分析了一...原创 2015-06-28 20:20:22 · 1444 阅读 · 0 评论 -
三个实例演示 Java Thread Dump 日志分析
jstack Dump 日志文件中的线程状态dump 文件里,值得关注的线程状态有:死锁,Deadlock(重点关注) 执行中,Runnable 等待资源,Waiting on condition(重点关注) 等待获取监视器,Waiting on monitor entry(重点关注)暂停,Suspended对象等待中,Object.wa...原创 2015-07-17 08:38:58 · 201 阅读 · 0 评论 -
线上Java应用排查和诊断规范
标准做法一:OOM触发HeadpDump目的:OOM发生时,输出堆栈快照文件,供研发人员分析。在JVM中,如果98%的时间是用于 GC 且可用的 Heap size 不足2%的时候,将抛出 OOM 异常。配置操作:Resin/Tomcat 配置文件里追加 -XX:+HeapDumpOnOutOfMemoryError ,当 OutOfMemoryException 错误...原创 2015-07-17 08:39:24 · 115 阅读 · 0 评论 -
解决airpal的数据预览问题
airpal可以形成一个系列了。airpal默认是可以预览数据的。但加上用户对应的权限表之后,数据预览就不见了。 解决这个问题的环境: intellij 15 chrmoe 远程debug 解决思路: 1.刚开始怀疑是前端的问题,通过chrome的inspect...原创 2015-12-31 17:27:49 · 264 阅读 · 0 评论 -
解决airpal保存历史记录滚动条问题
这是一个前端ui问题,用到一堆新玩意:reactjs,airpal.js等。又是从0.1版开始找思路解决这个问题。 使用工具是chrmoe的inspect 调试思路: a. element.style b.引入airpal.css里class 开始调试: ...2015-12-30 09:52:45 · 140 阅读 · 0 评论 -
基于jmx_api采集jvm遇到坑
it里本没有坑,一不小心掉进去了,坑就出来了。这次是由于自已的不懂,才掉进去了。 在测试环境和线上一样的配置,却出现有的数据采集不到情况,请看下图 我采用的架构方式是:zabbix3.0+java_gateway_jmx。开始填坑debug之旅行。 1.最开始以为是配置的key出错,一一核对,两个环境的配置都一样的。排除 2.debug zab...原创 2015-10-24 09:33:19 · 641 阅读 · 0 评论 -
记使用git 遇到的问题
由于使用git版本不一样,pull代码是不会报错的,但push 就会报错,如下: warning: push.default is unset; its implicit value is changing inGit 2.0 from 'matching' to 'simple'. To squelch this messageand maintai...2015-09-08 10:11:52 · 169 阅读 · 0 评论 -
curl 性能绑定host测试总结
curl 绑定host测试并输出消耗时间: curl -e http://www.baidu.com -w %{time_connect}:%{time_starttransfer}:%{time_total} -I -H "Host:pubimg“ -e 伪装来源 %{time_connect}: 连接时间 %{time_s...原创 2015-09-07 15:14:20 · 1147 阅读 · 0 评论 -
ssh 远程调用解决环境变量方法
远程调用ssh命令时候,有可能会遇到系统无法加载而导致脚本执行不了,而本地执行时,却正常,这时候会让很多人郁闷,这是为什么呢,原来ssh登录时候,non-interactive + non-login: 不读取任何文件.so ,为什么执行不了吧。 就此原因,有两种办法: 一是在shell 里加上 export BASH_ENV=/et...2015-09-02 23:56:09 · 884 阅读 · 0 评论 -
linux下报错bash: service: command not found
在linux下操作的时候经常会遇到,bash: service: command not found这个错误,以前在网上找了,照着弄了,也没细看原因,今天又碰到这个问题,就顺便研究一下。 1、通常这种情况是出现在 通过su root命令来进行操作的时候。 su或者su root 只是相当于以root用户身份来操作,实际的系统环境并没有切换到root用户的环境,而只是当前登录用户; ...原创 2015-08-25 10:41:18 · 238 阅读 · 0 评论 -
一次「Too many open files」故障
昨天,项目的 ElasticSearch 服务挂了,我说的挂可不是进程没了,因为有 Supervisor 保护,而是服务不可用了。以前曾经出现过一次因为 ES_HEAP_SIZE 设置不当导致的服务不可用故障,于是我惯性的判断应该还是 ES_HEAP_SIZE 的问题,不过登录服务器后发现日志里显示大量的「Too many open files」错误信息。那么 ElasticSearch ...原创 2015-08-04 10:04:39 · 174 阅读 · 0 评论 -
一个性能较好的jvm参数配置以及jvm的简介
一个性能较好的web服务器jvm参数配置: -server //服务器模式-Xmx2g //JVM最大允许分配的堆内存,按需分配-Xms2g //JVM初始分配的堆内存,一般和Xmx配置成一样以避免每次gc后JVM重新分配内存。-Xmn256m //年轻代内存大小,整个JVM内存=年轻代 + 年老代 + 持久代-XX:PermSize=128m //持久代内存大小-X...原创 2015-07-20 08:51:46 · 141 阅读 · 0 评论 -
借助PageSpeed,为Nginx网站服务器提速
网站加载速度越快,访客互动性、留住率和转换率就越高,这早已不是什么秘密。网站每延迟 100毫秒,亚马逊的销售额就会减少1%;延迟增加500毫秒,这意味着谷歌的流量和收入就会减少20%。要是有一个办法可以为你的网站服务器提速,又不 必升级到功能更强大的服务器,就没有理由不试一试这个办法。 我在本教程中将介绍如何优化Nginx网站服务器,以提升其性能。虽然Nginx网站服务器本身已...原创 2015-06-28 20:02:51 · 256 阅读 · 0 评论 -
nginx自定义ip访问N种方法
因业务需要,禁止一部分内网访问接口, 由于前端架了F5,直接用deny或allow是不行的,这是因为直接获取的前端F5的地址。 所以开始思考有哪些主案可以实现这样的需求,目前可实施的是三种: 一:把ip段放在redis里,写一段lua 二:利用geo传递变量,写一段if 三:直接禁止Ip访问形式,只允许域名访问,这种方式不太灵活...2015-06-28 16:03:54 · 468 阅读 · 0 评论 -
nginx禁止ip访问
在配置里加上这段: #禁止IP访问 server { listen 80 default; server_name _; server_name www.example.com example.com return 500; } ...原创 2015-06-27 10:09:22 · 142 阅读 · 0 评论 -
通过 Javacore 诊断线程挂起等性能问题
Javacore 与 WebSphere Commerce 性能问题近年来,依据 WebSphere Commerce(以下简称为 WC)搭建的电子商务网站系统日益增多。由于系统本身的复杂性,一旦系统出现问题,尤其是性能问题,问题诊断和定位就会非常困难。下图所示为由 WC 系统为核心搭建的电子商务网站的一般逻辑架构 , 如图 1 所示:图 1. 电子商务网站的一般逻辑架构...原创 2015-05-18 17:19:21 · 1354 阅读 · 0 评论 -
zabbix 2.0以上版本远程命令action重复执行
运维与自动执行远程命令,当zabbix的触发器发生时,执行远程命令。 当conditions满足条件时,operations开如操作。 不管条件怎么设置,远程命令还是不停执行。 这问题卡了一天,终于找到原因了。 Multiple PROBLEM events generation 是这条件选上之后造成的。 为什么呢? 是触发器会产...2015-05-15 18:51:07 · 292 阅读 · 0 评论 -
WAS加证书的两种思路
工作需要,在was加入第三方证书认证。有两种思路可以参考 一:在程序里引有证书,不过这里有问题,如果证书超过1m,IBM的jdk会报too big这类的异常。 二:在was控制台加“出入口证书”,加”检索端口信息”。我是采用这种方式。...2015-05-11 15:29:24 · 2005 阅读 · 0 评论 -
Nginx问题定位之监控进程异常退出
nginx在运行过程中是否稳定,是否有异常退出过?这里总结几项平时会用到的小技巧。1. 在error.log中查看是否有signal项,如果有,看看signal是多少。比如,这是一个异常退出的情况:$grep signal error.log2012/12/24 16:39:56 [alert] 13661#0: worker process 13666 exited on ...原创 2015-05-06 10:07:50 · 164 阅读 · 0 评论 -
杀掉nginx进程后丢失nginx.pid,如何重新启动nginx
nginx进程被意外关闭,使用nginx -s reload重启时报如下错误:nginx: [error] open() “/var/run/nginx.pid” failed (2: No such file or directory)这是因为nginx进程被杀死后pid丢失了,下一次再开启nginx -s reload时无法启动解决办法:nginx -s reload 只是用来告诉运行中的ng...原创 2015-04-25 16:25:50 · 1400 阅读 · 0 评论 -
关于线上优化与失败的思考
要控制问题域其实互联网服务做久了,线上问题处理早已变成了家常便饭。因为用户不能忍受宕机,所以你有问题查起来基本是不眠不休。个中滋味,只能自己慢慢体味。这问题有时候是新问题,你刚改的代码有个bug,有时候是老问题,但是是暴露了老代码里的bug。多数情况下,都可以通过回滚代码来解决。个别情况下,你需要增加一个fix版本重新上线。这些都简单,难的地方在于定位问题。定位问题最怕问题域太...原创 2015-04-14 08:28:05 · 142 阅读 · 0 评论 -
关于CAS单点登录超时处理总结
1 错误场景 cas session 超时问题:XMLHttpRequest cannot loadhttps://www.hf.com:8443/cas/login?service=http%3A%2F%2Flocalhost%3A8080%2Fvms%2Fcheck%2FfindPendingCheck%2...原创 2015-04-09 17:20:53 · 2406 阅读 · 0 评论 -
JBoss5.1.0 GA - 部署项目类库兼容和类库冲突问题解决方法
在Tomcat6下开发,但将项目部署至JBoss5下运行的时候,碰到了一系列问题:环境JBoss-5.1.0 GASpring-2.5.6 / Spring-3.0.5一、org.springframework.beans.factory.BeanDefinitionStoreException: I/O failure during classpath scanning; nes...原创 2015-04-03 10:10:49 · 308 阅读 · 0 评论 -
JBoss 5.1.0 GA:Error installing to Instantiated: name=AttachmentStore state=Desc
进到类似目录 server/default/conf/bootstrap,打开文件 profile.xml找到: Xml代码<bean name="AttachmentStore" class="org.jboss.system.server.profileservice.repository.AbstractAttachmentStore"> <...原创 2015-03-30 08:20:48 · 307 阅读 · 0 评论 -
java OOM内存异常的四种类型及异常与解决方案
OOM异常的四种类型: 一: StackOverflowError :通常因为递归函数引起(死递归,递归太深)。-Xss 128k 一般够用。 二: out Of memory: PermGen Space:通常是动态类大多,比如web 服务器自动更新部署时引起。-Xmx 256M,一般够用。JDK 8 没有PermGen Space,相对应是Me...原创 2015-05-19 08:40:36 · 969 阅读 · 0 评论 -
通过nginx获取header信息
1. 提取整个的Cookies内容到一个变量,然后可以在需要时引用,比如记录到日志里面, if ( $http_cookie ~* "(.*)$") { set $all_cookie $1; } 变量$all_cookie就获得了cookie的值,可以用于运算了 2. 提取指定的一个cookie的值,然后根据需要使用,比如赋值给X-Real-Ip, if (...原创 2015-05-20 14:06:48 · 6205 阅读 · 0 评论 -
nginx三种获取用户真实ip的方法
随着nginx的迅速崛起,越来越多公司将apache更换成nginx. 同时也越来越多人使用nginx作为负载均衡, 并且代理前面可能还加上了CDN加速,但是随之也遇到一个问题:nginx如何获取用户的真实IP地址,如果后端是apache,请跳转到<apache获取用户真实IP地址>,如果是后端真实服务器是nginx,那么继续往下看。实例环境: 用户IP 120.22.11.11...原创 2015-06-24 10:04:19 · 2078 阅读 · 0 评论 -
关于线程与内存线上问题诊断
由于线上应用出问题,查找原因,查看线程活动情况,使用java自带的jvisual 。 动态生成headump方法,在linux任意位置执行: jmap -F -dump:format=b,file=temp_heapdump.hprof Pid 使用ibm的就jca看比较细一些,可以查看哪些程序占用的内存过多...原创 2015-06-16 17:11:00 · 316 阅读 · 0 评论 -
jvisualvm jconsloe 监视tomcat
操作步骤: 监控Java: 先建一个名为jstatd.all.policy文件,内容为 grant codebase "file:${java.home}/../lib/tools.jar" { permission java.security.AllPermission; }; 在jdb的bin运行 jstatd -J-Djava.security...原创 2015-06-16 09:55:46 · 210 阅读 · 0 评论 -
nginx访问日志,错误日志参数说明
说明: nginx日志主要有两种:访问日志、错误日志。其中访问日志记录客户端访问nginx的每一个请求,包含用户地域来源、跳转来源、使用终端、某个URL 访问量等信息,访问日志格式可以自定义;错误日志则记录客户端访问nginx出错时的日志,格式不支持自定义,通过错误日志,你可以得到系统某个服务或 server的性能瓶颈等。两种日志都可以选择性关闭。 访问日志[Access.log]l...原创 2015-06-15 17:40:21 · 202 阅读 · 0 评论 -
nginx负载tomcat遇非80时的转发问题
nginx负载后端容器是tomcat(其它容器如WAS,JBOSS暂没发现这个问题)非80端口,遇到跳转异常问题。解决的思路是:$host:port 详细如下: 该问题是最先发现的,由于之前对nginx不是特别的熟悉所以该问题是个入门级别的:?12345678910server { ...原创 2015-06-04 11:00:22 · 233 阅读 · 0 评论