本文是对一篇blog的翻译,感谢译者Hualet Wang。原文通过一个例子为我们展示了,在分析进程运行缓慢的问题时,strace和pstack都束手无策的情况下,不要忘了还有proc。
今天下午我遇到了一些棘手的问题,因为在mips64上编译程序,经常出现程序编译不出来,或者运行不正常,花了很长的时间定位,最后和同事一些解决了,下面分享出来我提炼出来的一些核心定位问题的步骤。
在我们使用 Linux 系统时,如果网络或者磁盘等 I/O 出问题,会发现进程卡住了,即使用 kill -9 也无法杀掉进程,很多常用的调试工具,比如 strace, pstack 等也都失灵了,是怎么回事?
启动Tomcat的时候,没有任何错误,端口监听也正常。 就是启动后无法访问 原因是Tomcat 在启动的时候,调用了jdk的随机数,随机数非常慢,就卡住了。 将$JAVA_HOME/jre/lib/security/Java.security内,将securerandom.source的内容改为file:/dev/./urandom即可 注: Linux或者部分unix系统提供随机数设备是/dev/random 和/dev/urandom ,两个有区别,urandom安全性没有random高,但random
某生产服务器上的1月17号下午1点左右业务部门运维人员通过堡垒机登录时查看crontab -l定时任务是在的
问题描述: 游戏公测,玩家大概有几百个.运行一小段时间,大概是20分钟左右或最多半个小时,服务端就卡住了. 卡住较长时间,之后又会变正常一小会儿 查问题过程: 经过对运行日志的分析,程序执行到给客户端socket写数据的时候会一直卡住,然后报错,具体错误已忘记, 大概是写超时之类的. 百度查询,认为是, 服务端在给一个已经关闭的socket写数据才导致的错误, 而这个"关闭"在服务端其实认为没有关闭的. 是客户端主动发起了close的请求, 但是服务端没有正确处理该请求, 导致服务端一直认为该sock
登录网络服务 (以下简称F服务)接进来一个用户,然后用户会连接到会话管理服务(以下简称D服务)
简单的说,编译器是一种将高级语言经过其解释,翻译成可以运行的二进制代码(有可能是汇编代码,但这种方式处理不一样,还有编译成其他形式的如JAVA是编译成"字节码文件"),再通过它的连接程序就调用了系统内部的一些库,实际点说是操作系统的动态连接库,也就是你操作系统和硬件(BIOS)打交道而且已经写好的函数库(这个解释不是很准确,我现在学习其他语言的时候,对类似的说法有API( 应用程序接口)调用系统动态连接库,注意:API是你的编译器提供的,也就是说你可以直接用他,而不需要写很多的底层的代码了,如果要很明确的说的话,就是一个应用程序接口需要很多的底层代码才能写出,而在你使用的C语言中只是一个语句而已,包括你写一个定义变量的语句: int i;计算机为什么能认识它,这就是它通过了二进制代码和汇编的组合完成了这个解释过程,而其功能,在内部需要很多的二进制代码和汇编代码。
今天系统收到用户上传的一份视频,播着播着就卡住了,很是奇怪,大家可以播放感受下,卡顿发生在视频1分钟的时候。
本来是想写一个 HTTP 的服务,你告诉这个 HTTP 服务一个 IP 地址和端口,这个 HTTP 服务就可以返回通过 TCP 访问这个 IP 端口的延迟。因为我们每次做 chaos 注入的时候都要测试一下注入延迟成功了没有,有了这个服务,这个测试就可以自动化。
早一个星期不知道为什么就很热血的折腾起黑苹果。之前觉得自己对于操作系统还算了解,包括linux,但是唯独没有试过Mac OS。之前自己一直比较偏向软件,然后偏向web方向研发,也去关注前端关注体验,也很想知道苹果系到底是以如何的体验得以吸引这么多用户。没有钱钱买白的苹果,就黑下吧……
最近几天在学习Spring框架,网上找了好多教程,都出现各种各样的错误,最后自己摸索了一天,终于安装成功了,把过程记录一下。
SpringBoot项目启动的时候Console控制台日志打印卡住,无任何异常信息打印
对于新手来说很多时候,明明跟着教程走,但是就是不行,很可能是防火墙问题。这里建议先关闭防火墙(相对不安全);可能需要在服务器购买的地方开放所有端口,然后在服务器上关闭防火墙。
zabbix报错排错大全 zabbix报错 1.在启动zabbix-agent 时系统日志输出 PID file /run/zabbix/zabbix_agentd.pid not readable
重装系统后安装VS2015时卡住了,于是试试看VS2017怎样,听说还支持调Linux。发现VS2017跟12/13/15又有了新的飞跃,竟然支持模块化下载,对于我这种主要写C++简直是个福音,勾了Linux C++和MFC后,C盘+D盘也才6G,比起VS2015只额外勾MFC就有10G来说轻了这么多!
最近刚接触PhantomJS, 听说这工具是一个基于WebKit的服务器端JavaScript API,可以实现绝大部分浏览器的操作, 迫不及待就想练练手.于是就简单写了一个程序, 简单介绍下:
Python有自己内置的标准GUI库–Tkinter,只要安装好Python就可以调用。
开始我怀疑PHP有问题,但是通过查询Nginx的access日志,发现里面记录的PHP响应时间「$upstream_response_time」非常小,此外还通过Strace命令仔细核对了是否存在耗时的操作,结果一无所获,所以基本排除了PHP的嫌疑。
Asp.Net Core 程序部署到Linux(centos)生产环境(一):普通部署
如果你的机器在启动过程中卡住了,首先要检查挂起是发生在控制权传递给 systemd 之前还是之后。
因为一直从事软件开发,并且将vim作为了主力编辑器,因此,我非常想要体验一下在真正的linux系统之下工作是什么体验,于是前几天,我将我的笔记本操作系统替换成了manjaro kde最新版本,安装非常顺利,用了大概10-20分钟左右就安装好了,于是我就兴奋地开启了我的linux之旅。
前几天好不容易写好了dragonOS的内核线程的代码,结果在进程切换的时候总是报page_fault以及general protection。这个bug把我卡住了3天。
下载地址:https://www.macports.org/install.php 选择自己的下载版本
旧的API版本通常会包含更多的安全漏洞,他们缺乏一些安全机制。我们可以使用REST API的一些特征来预测是否存在旧的API版本。比如当前有一个API被命名为/api/v3/login ,我们可以检查/api/v1/login是否存在 。
日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材^_^。
① 首先安装JDK1.7,并且下载好apache-activemq-5.11.1-bin.tar.gz
今天把之前CentOS7的root密码忘记了,从新安装一遍系统并下载配置相关服务也很麻烦的,所以我总结一下过程
现居珠海,先后担任专职 Oracle 和 MySQL DBA,现在主要负责 MySQL、mongoDB 和 Redis 维护工作。
给网站搞个安全措施,所以最近我用上了免费的Cloudflare,但是经过无数次调试后发现,无法登入后台了(gan!)
登录该节点查看show processlist,正在执行1个分布式ddl,该ddl已经运行100多个小时,应该是卡住了。
一、磁盘 1、告警:Disk read/write request responses are too high 表达式解释为: 最近15分钟的对应磁盘的Disk read request avg waiting time (r_await)大于20ms或者 Disk write request avg waiting time (w_await) 大于20ms
(是下载xshell而不是xsell!电脑卡了个bug,我没有在Xmind或者幕布上做思维导图,因为之前已经在别的软件上买了会员,但是现在它这个软件好像有点问题,我在软件上改了,但是导出了好多遍还是没变)
NFS server启动时会随机启动多个端口并向RPC注册,这样如果使用iptables对NFS sever 端口进行限制就会有点麻烦,可以更改配置文件固定NFS服务相关端口。
正式环境出现了不能上传图片,图片不能浏览的问题,上正式环境进行排查,在使用df -h命令的时候卡住不动了,其他命令没问题。运行内存以及cpu都是正常的。 正式环境服务器 /data/xxx/upload的目录是进行了nfs挂载
如果你在网上搜索“Python 多线程”,那么你会看到很多文章里面用到了一个关键词,叫做.join()。但是很多人的代码里面都在乱用 join(),例如:
1. 今天进行数据库备份恢复 一直卡住 找了一下 公司另外一个部门的方神提供了一个方法连查看 具体在做什么操作:
Linux简介: linux代表系统内核。Linux系统指基于Linux内核的操作系统,由内核和程序结合组成。比较流行的发行版本由RedHat Linux、Fedora、Centos、Debian、Ubuntu等。 Linux的诞生和发展其诞生和发展离不开4个要素:UNIX操作系统、MINIX操作系统、GUN计划和POSIX标准。GUN计划目的是建立免费的UNIX系统,其基本原则是源代码共享以及思想共享。GUN是“GUN’s not UNIX”的缩写。Linux可以说是UNIX的一个升级克隆体,L
最近,蘑菇社区被一群热心的群友关照,导致网站出现卡顿,宕机的情况,陌溪为了查看具体原因,需要使用命令进行排查。
在使用Zabbix过程中,当开启自动发现协议后,频繁出现“ Zabbix discoverer processes more than 75% busy”的报警信息,如下:
导读:虽然已经有很多分析工具 jvisualvm,jstat,jmap,jstack,Memory Analyzer等。但可能不是大杂烩,或者线上无法分析等。所以看看arthas的功能,好用就用它了
新年快到了,工作了一年你,躺在床上,退下一身的疲怠,是否也曾向往去到一个新的城市工作和生活呢那中国除了公认的北上广深工作机会最多以外,还有哪些城市也相对不错呢这时候我们可能会打开招聘网站开始选择城市然后来了解这个城市的职位情况. 那么一直秉持着人生苦短,我学python的我们,为什么不能用python来写一个分析2018全国各个城市的职位数排名的爬虫脚本呢这么一想十分可行啊,我们只需要找到一个目标招聘平台,然后通过用代码get到它的html正文,通过BeautifulSoup分析html来得
如果上一次运行脚本,没有正常的把 pythoncom.PumpMessag() 启用的进程关闭,下一次再次执行就会导致卡住。
UUID(Universally Unique Identifier,通用唯一标识符)是一种用于标识信息的128位标识符。Java开发人员倾向于使用 java.util.UUID#randomUUID API来生成UUID编号(类似4c88314f-14ca-4652-8567-4471a0ef917c)。
事情起因于公司一位同事在内部邮件组中post了一个问题,一个使用了go1.8.3写的业务程序跑了一段时间后出现部分goroutine卡在等待一个锁ForkLock的现象,同事认为这是go1.8.3的bug,升级到 go1.10 后没有再重现。为了搞清楚这个事情,同事在 github 上发了 issue :
在写脚本的时候,会针使用一个固定的屏幕分辨率来编写,但是当这个脚本在其它分辨率的手机上使用时就会无法正常运行,为此就需要提前声明脚本分辨率,这样脚本在运行时就会根据当前手机屏幕分辨率与脚本编写时声明的手机分辨率进行比例缩放,相关的坐标位置也会跟着比例做位移。
自从上次修改backlog之后, Silly的IO能力,就一直以少量(约4~6K)的差距落后于redis,却一直找不到原因。
Pod 我们可以分为两类,一种属于自主式 Pod ,还有一种属于控制器管理的 Pod 。
导读:现在,技术已经成为所有行业创新的基石。这引发全世界对程序员和开发人员的巨大需求。技术的美妙之处在于它触手可及,所以……
领取专属 10元无门槛券
手把手带您无忧上云