tsync堆外内存溢出排查经过 一、发生得问题tsync服务总是莫名得宕机,java进程被莫名其妙的消失了。二、查找问题当时看了系统日志:sudo -u admin dmesg|grep -A20 killscreenshot发现是oom了,内存不足被系统kill掉了。当时怀疑有可能是堆内内存溢出,查看监控,系统物理内存:发现物理内存确实使用了100%。继续看java堆内存:发现java堆内内存很正常o...
aserver配置解析之单元化规则 最近有空把aserver的线上配置看了一遍,大体上了解了接入层对整个请求的流转和控制。aserver是tengine的一个分支,其中包含了很多的私有指令,不过大部分根据指令名称也能猜出个大概。本篇主要是讲解一下单元化规则的相关内容。我理解的单元化规则问题,就是当用户请求过来的时候,aserver如何能转发到对应单元的后端upstream机器。那么就来看一下如何根据用户区分单元。在cell_...
MTOP2015双11整体网络拓扑 MTOP2015双11整体网络拓扑2015年双11, mtop迁移到accs,进行了去中心化改造,并承接了部分pc的活动业务,形成了下面的结构图。 一、AServer/WJASAServer/WJAS都是nginx的定制版本.WJAS是2014年的网关技术,实现了单向的spdy和slight-ssl v1,支持标准https, 三地四单元都有布署,接入域名为api.m.taobao....
怎么能快速发现java系统的问题,并快速定位解决问题 目录目录怎么能快速发现java系统的问题,并快速定位解决问题前言:解决思路针对系统异常信息的发现怎么收集error级别的日志收集用什么方式实现针对收集到信息后怎么定位解决问题怎么完美的解决?用什么技术系统介绍系统架构图技术介绍javaagentjavassistlog日志的类字节转换:端控制代码诊断部分的类转换:类隔离代码诊断...
聊聊高并发系统之降级特技(转) 在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。之前已经有一些文章介绍过缓存和限流了。本文将详细聊聊降级。当访问量剧增、服务出现问题(如响应时间慢或不响应)或非核心服务影响到核心流程的性能时,仍然需要保证服务还是可用的,即使是有损服务。系统可以根据一些关键数据进行自动降级,也可以配置开关实现人工降级。本文将介绍一些笔者在实际工作中遇到的或见到过的一些降级方案供大家参考。 降级的最终目的...
聊聊高并发系统之限流特技(二)(转) 上一篇《聊聊高并发系统限流特技-1》讲了限流算法、应用级限流、分布式限流;本篇将介绍接入层限流实现。 接入层限流 接入层通常指请求流量的入口,该层的主要目的有:负载均衡、非法请求过滤、请求聚合、缓存、降级、限流、 A/B 测试、服务质量监控等等,可以参考笔者写的《 使用 Nginx+Lua(OpenResty) 开发高性能 Web 应用 》。 ...
2016年09月22日 一、编程规约命名规约:【强制】类名使用UpperCamelCase。 不能以下划线或美元符号打头,必须遵从驼峰形式,但以下情形例外:(领域模型的相关命名)DO / DTO / VO / DAO等。正例:MarcoPolo / UserDO / HtmlDTO / XmlService / TcpUdpDeal / TaPromotion反例:macroPolo / UserDo / HTMLDto...
分表策略 以下的是分表的策略: 对于con_mms_file_info,con_mms_info和con_video_file_code_info这三张表以mid路由,这样同一个mid的数据都在一张表里好管理维护,而且按照sql的执行率来看以这三张表以mid操作的频率是比较高的,其他查询需要在程序端进行合并。首先想到的是以下两种方式:散列方式mid:优点:分散热点增删改查缺点:后...
高效运维最佳实践(03):Redis集群技术及Codis实践 (转) 专栏介绍“高效运维最佳实践”是InfoQ在2015年推出的精品专栏,由触控科技运维总监萧田国撰写,InfoQ总编辑崔康策划。前言诚如开篇文章所言,高效运维包括管理的专业化和技术的专业化。前两篇我们主要在说些管理相关的内容,本篇说一下技术专业化。希望读者朋友们能适应这个转换,谢谢。互联网早在几年前就已进入Web 2.0时代,对后台支撑能力的要求,提高了几十倍甚至几百倍。在这个演化过程...
python 模块安装卸载 python setup.py install --record files.txt 记录安装后文件的路径cat files.txt | xargs rm -rf 删除这些文件
解决lua解压缩memcach数据的问题 memcach 客户端压缩数据会存flag标志到服务端,0,为不缩,1为序列化对象数据,2为压缩。 nginx+lua 用lua_zlib包 来解决解压缩问题,判断flag是2的时候进行解压缩,其他不进行解压缩,存储为json数据...
数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案(转)... 作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sharding改造阶段。简单地说,Sharding就是将原来单一数据库按照一定的规则进行切分,把数据分散到多台物理机(我们称之为Shard)上存储,从而突破单机限制,使系统能以Scale-Out的方式应对不断上涨的海量数据,但是这种切分对上层应用来说是透明的,多个...
jmap命令详解 1、命令基本概述 Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。 使用方法 jmap -histo pid。如果使用SHELL ,可采用jmap -histo pid>a.log日志将其保存到文件中,在一段时间后,使用文本对比工具,可以对比出GC...
linux常用命令 打印匹配行的前后几行 cat mms-remote-2015-01-16.log|grep -20 timeout linux系统中,利用grep打印匹配的上下几行 如果在只是想匹配模式的上下几行,grep可以实现。 $grep -5 'parttern' inputfile //打印匹配行的前后5行 $grep -C 5 'parttern' inputfile //打印匹配行的前后...
linux用户维护 # useradd –d /usr/sam -m sam 此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录)。 假设当前用户是sam,则下面的命令修改该用户自己的口令: # passwd Old password:****** New password:******* Re-enter new pas...
dubbo 整理笔记 dubbo用的是spring的扩展schema,Spring启动的时候,会到spring.handlers文件中查找相应的namespacehandler, 并将其存入到mapping中。 然后执行DubboBeanDefinitionParser的parse方法,进行对象bean的生成,当对这个ServiceBean.class处理生成bean时会执行他的父类的静态方法就是扩展点的执行,然后执...
svn刷新eclipse不自动编译的问题 每次svn更新都要手动编译 靠~ 解决:修改工程下的.classpath 的output ,这个要和项目中的一致,可以在eclipse右击项目java build path 中