今天,抽个时间,我们换换“口味”,聊一个你可能会经常犯的一个错误!使用 e.printStackTrace() 输出日志是怎样让系统崩掉的!
服务器终于稳定了,项目也迁移完成了,BCVP (前后端分离认证鉴权一整套)框架也平稳度过了两个星期。最近半年以来,一直受到服务器偶尔重启的困扰,看了下原因,是服务器内存被占满了,这还是没有使用呢,要是发布个流程,直接服务器挂掉
MySQL 是目前使用比较广泛的关系型数据库,而从数据库里面根据条件查询数据到内存的情况想必大家在日常项目实践中都有使用。
昨晚我发文上线了自己的网站:小林的网站上线啦!,结果发文上线不到 10 分钟, 服务器就炸了,读者疯狂跟我说网站 500 错误了。
注意右下角区域,红框部分。这块内存是什么呢?非堆!那么,左边是代码缓存区内存,右边红框就是字符串池,常量,基本类型数据的内存区。然后呢?已经满了。什么原因呢?
redis旧版小hash使用的数据结构,紧密数组存储结构 用1字节存储总节点数(如果1字节满了,代表需要遍历到底才知道有多少节点) 每个节点存储自己占用的内存空间,修改删除后,标记为闲置空间,闲置空间不压缩不回收,留用节点扩展或者插入节点 这也代表插入没有足够闲置时要O(n)移动后续内存 数据也是占用zipmap内存,所以查找是O(n)(利用len做快表跳跃)
注意右下角区域,红框部分。这块内存是什么呢?非堆!那么,左边是代码缓存区内存,右边红框就是字符串池,常量,基本类型数据的内存区。然后呢?已经满了。什么原因呢?e.printStackTrace()!
非堆!那么,左边是代码缓存区内存,右边红框就是字符串池,常量,基本类型数据的内存区。
原文链接:https://my.oschina.net/sxgkwei/blog/825700
e.printStackTrace() 会导致锁死?这仅仅是打印啊,怎么可能?!
今天处理了一起紧急问题,回过头来看还是有不少需要注意的地方。 首先是收到了报警,有一台DB服务器的负载有一些高,但是会快就恢复了。所以自己也没有在意,但是过了大概40多分钟,又接到一封报警邮件,而且随着报警频繁,感觉真是出了问题,在中控机器上使用ssh连接竟然都抛出了异常。 # ssh 10.127.xxxx Connection timed out during banner exchange 对于这类问题,是因为超出了默认的超时参数,不过我没有纠结在超时的时长,因为这个本身已经不重要,既然中控超时连接,
小明的公司有3个系统: 系统A、系统B和系统C ,这三个系统所做的业务不同,被部署在3个独立的机器上运行, 他们之间互相调用(当然是跨域网络的), 通力合作完成公司的业务流程。
由于Redis主线程是单线程的,所以会存在慢查询会导致redis请求延时,可以参考:
在上个世纪,电脑还没有流行起来的时候,程序员真的是一种高大上的工作。那时候,你写一个软件,需要录到磁盘里面,然后通过邮寄的方式与他人分享。
遇到服务器故障,问题出现的原因很少可以一下就想到。我们基本上都会从以下步骤入手,这些也是绝大多数运维工程师在定位故障时前几分钟的主要排查点:
最近我们的商城系统出现了一个线上问题,用户访问商城首页的时候要差不多20秒,才返回数据,可以说卡爆了。
在写这篇文章的时候我想到的第一个词就是,什么是链表? (不只这篇文章,好想其他的都是)
前一阵子好不容易来个实习生小姑娘,分给小星带,小星高兴坏了,结果姑娘没呆三天,受不了公司的九九六跑了。
Keras - GPU ID 和显存占用设定 初步尝试 Keras (基于 Tensorflow 后端)深度框架时, 发现其对于 GPU 的使用比较神奇, 默认竟然是全部占满显存, 1080Ti 跑个小分类问题, 就一下子满了. 而且是服务器上的两张 1080Ti. 服务器上的多张 GPU 都占满, 有点浪费性能. 因此, 需要类似于 Caffe 等框架的可以设定 GPU ID 和显存自动按需分配. 实际中发现, Keras 还可以限制 GPU 显存占用量. 这里涉及到的内容有: GPU ID 设定 GPU
作为前端工程师,我想大家一定对静态文件服务器不会陌生。所谓的静态文件服务器做的工作就是将我们的前端静态文件(.js/.css/.html)传输给浏览器,然后浏览器再将我们的页面渲染出来。我们常用的webpack-dev-server就是本地开发用的静态文件服务器,而一般线上环境我们会使用nginx,因为它更加稳定和高效。既然静态文件服务器无处不在,那么它们又是如何实现的呢?本篇文章将带你手把手实现一个高效的静态文件服务器。
遇到服务器故障,问题出现的原因很少可以一下就想到。我们基本上都会从以下步骤入手: 一、尽可能搞清楚问题的前因后果 不要一下子就扎到服务器前面,你需要先搞明白对这台服务器有多少已知的情况,还有故障的具体情况。不然你很可能就是在无的放矢。 必须搞清楚的问题有: 故障的表现是什么?无响应?报错? 故障是什么时候发现的? 故障是否可重现? 有没有出现的规律(比如每小时出现一次) 最后一次对整个平台进行更新的内容是什么(代码、服务器等)? 故障影响的特定用户群是什么样的(已登录的, 退出的, 某个地域的…)
ERROR 1040(HY000): Too many connections:DB连接池里已有太多连接,不能再和你建立新连接。
最近碰到一个蛮有启发意义的案例。是数据库监听相关的,但是实际的原因却又出乎意料。 问题的反馈受益于开发同学,一个开发同学在lync上找到我,说现在一个线上业务的数据库访问有些问题,想问问我是否有什么建议。大体了解了下,他们在使用一个非1521的端口,比如端口是1525,他们在业务端看到的错误信息类似下面的样子: java.sql.SQLException: Io exception: The Network Adapter could not establish the connection 这
今天早晨遇到一个Redis的线上的问题,也算是一个Redis的经典问题了,这里记录下分析和排查过程,希望对大家有所帮助。
在上一篇文章中(分布式高可靠之负载均衡,今天看了你肯定会),我带你学习了分布式高可靠中的负载均衡。负载均衡的核心在于,将用户请求均匀分配到多个处理服务器处理,以解决单个服务器的单点瓶颈问题。但,如果用户请求数非常多的话,即便实现了负载均衡,服务器能力达到上限,还是无法处理所有的用户请求。
目前需要有一个批量的并发需求,例如是需要并发群发1000条信息出去。如果传统串行方式执行,需要等待时间会比较长。如果直接使用并发操作,可能一下子执行1000并发可能会导致服务器资源突然飙升,影响正常业务的处理。所以就需要一个能够并发处理,又能合理控制并发数量的执行。
我们团队为上一家公司承担运维、优化和扩展工作的时候,我们碰到了各种不同规模的性能很差的系统和基础设备(大型系统居多,比如CNN或者世界银行的系统)。
我们团队为上一家公司承担运维、优化和扩展工作的时候,我们碰到了各种不同规模的性能很差的系统和基础设备(大型系统居多,比如CNN或者世界银行的系统)。要是再赶上修复时间紧、奇葩的技术平台、缺少信息和文档,基本上这过程都会惨痛到让我们留下深刻的记忆。
最近收到报警,某一个服务器的swap空间有些紧张,查看这台服务器上有两个备库数据库实例,当然负载还是很低的。但是目前来看,内存已经所剩无几,所以自然而然会用到swap,而且swap也看起来紧张了,从设计的角度来看,这种方式还是有很大的隐患,一旦需要切换,这台服务器还是很有可能出现oom-killer的情况,也就意味着宕机。所以从小从大来看这个报警都不能掉以轻心。 使用top查看的情况如下,可以看到swap已经很紧张了,剩余内存不到300M了。 top - 13:46:44 up 973 days, 3:0
最新在网上看到一款关于FullCalendar日历开源项目,可以用日历的形式直观的展示了日程安排、代办事宜等事件。是一款功能强大的开源项目。因为项目需要所以就研究了一下FullCalendar的用法和原理,感觉效果挺不错的所以拿来分享分享。
说起Netty,思绪一下子拉回到了2017年,当时因为Netty名声在外,所以就开始学Netty,但是说实话,当时没有什么应用场景,就是纯学不用,导致最近在用到的时候遇到了很多问题。例如:在InHandler的read()中使用while循环写,为什么写一会儿就卡死?服务端断开连接客户端如何捕获到,并发起重新连接?如何避免拆包、分包的问题?等等。
JVM 发生内部崩溃,那么必然会生成"hs_err_pid"开头的文件,下面讲一种常见情况:
不知道有没有朋友对这个话题感兴趣,从我个人的经验来讲,我对我自己没有体验过的职业总是充满了好奇。我至少有一半的微信朋友都不是程序员,我猜想他们对这个话题是感兴趣的。
不知道大家打开本文,有没有留意文章所在的分类节点:云计算。其实我的本意,是要将微服务跟云架构归类在一起。因为他们都有着一个相同的存在目的:方便扩容!
公司Exchange邮件系统邮件流故障的故障发现、故障处理和故障修复的过程记录和总结反思。帮助自己总结经验和吸取教训,同时也作为一次反面教材让其他运维或管理员吸取教训。
随便测了青岛OJ的docker,好不容易跑完压力测试,一看Analysis给我整晕了。就这?
在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求;特别一点的如订单、骑手、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。
yield 可以实现生成器,可以实现协程。什么是生成器,什么是协程,如果还不了解,可以继续往下看,概念可以不懂,只要理解它的作用和效果也是可以的。
我们的网站使用了SpringBoot推荐的模板引擎:Thymeleaf,进行动态渲染。
那是一个风和日丽的上午,我和往常一样来到公司,倒杯水等待电脑打开,之后打开日常维护的几个系统。
在TCP协议中,为了确保数据能稳定发送,协议使用数据包中的syn,ack两个字段来监控数据是否正确发生和接收,本节我们看看这两个字段如何保证数据的平稳传输。
初步尝试 Keras (基于 Tensorflow 后端)深度框架时, 发现其对于 GPU 的使用比较神奇, 默认竟然是全部占满显存, 1080Ti 跑个小分类问题, 就一下子满了. 而且是服务器上的两张 1080Ti.
一个业务实体的属性出现变更,会刷新用户域、订单域、商品域等多个域冗余的数据。变更数据涉及到的数据量大时,会比较耗时、耗内存。
持久化主要是做灾难恢复、数据恢复,也可以归类到高可用的一个环节中去,比如你 redis 整个挂了,然后 redis 就不可用了,你要做的事情就是让 redis 变得可用,尽快变得可用。
我需要获得新闻,然后tts,在每天上班的路上可以听一下。具体的方案后期我也会做一次分享。先看我喜欢的万能的老路:获得html内容-> python的工具库解析,获得元素中的内容,完成。
无论是我们在学校刚开始学编程,还是在刚参加工作开始处理实际问题,写出来的程序都是很简单的。因为面对的问题很简单。以处理数据为例,可能只是把一个几十K的文件解析下,然后生成一个词频分析的报告。很简单的程序,十几行甚至几行就搞定了。
领取专属 10元无门槛券
手把手带您无忧上云