性能调优
nielinqi520
这个作者很懒,什么都没留下…
展开
-
Linux批量清空当前目录中的日志文件
在Linux中,有时需要批量清空当前目录中的日志文件,同时还要保留日志文件。其实一行shell命令就可以搞定,一起来看看吧。在当前目录下,键入如下命令:for i in `find . -name "*.log"`; do cat /dev/null >$i; donefor i in `find . -name "*.log"`;do >$i; done转载 2017-09-14 11:11:09 · 1229 阅读 · 0 评论 -
Fiddler对安卓应用手机抓包图文教程
做开发需要抓取手机app的http/https的数据包,想看APP发出的http请求和响应是什么,这就需要抓包了,这可以得到一些不为人知的api,比如还可以干些“坏事”...需要工具:Fiddler抓包软件Android 手机一台一、如何使用 Fiddler2 下载完成后安装,安装过程就不贴图了。如下图设置Fiddler 代理:转载 2017-12-19 14:57:59 · 48038 阅读 · 2 评论 -
缓存系列之五:通过codis3.2实现redis3.2.8集群的管理
通过codis3.2实现redis3.2.8集群一:Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表https://github.com/CodisLabs/codis/blob/release3.1/doc/unsupported_cmds.md), 上层应用转载 2017-12-25 11:32:58 · 626 阅读 · 0 评论 -
sysctl(配置优化参数)
net.ipv4.tcp_keepalive_time = 300 #意思是如果某个TCP连接在idle 2个小时后,内核才发起probe.如果probe 9次(每次75秒)不成功,内核才彻底放弃,认为该连接已失效net.ipv4.tcp_syncookies = 1 #当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭。net.ipv4.tc原创 2017-12-20 16:04:59 · 1624 阅读 · 0 评论 -
JVM内存溢出导致的CPU过高问题排查案例
问题背景:近期针对某接口做压力测试的过程中发现,某接口在用户量3千左右,并且业务没有对外开放,CPU一直居高不下。分析:初步怀疑开发人员逻辑控制不严谨, 导致死循环,因为业务量不大,用户量不大,不可能出现高并发。 1.通过jstack查找出对应执行线程是Vm Thread 线程,初步怀疑是频繁的GC导致cpu过高。 2.查看堆栈信息 jmap -heap 16190转载 2017-11-06 11:03:40 · 8715 阅读 · 0 评论 -
Tomcat8开启APR
安装apr 1.5.2 下载 http://apache.fayea.com//apr/apr-1.5.2.tar.gz# cd /usr/local/src# wget http://apache.fayea.com//apr/apr-1.5.2.tar.gz# tar -xzvf apr-1.5.2.tar.gz# cd apr-1.5.2# ./confi转载 2017-10-22 08:59:08 · 462 阅读 · 0 评论 -
linux下创建具有root权限的帐号
linux下创建具有root权限的帐号useradd -u 0 -o -g root -G root -d /home/user1 user1usermod -u 0 -o -g root -G root user1说明:-u 0:指将uid指定为0(零)与root相同,登录后的提示符为#而非$。-o:指因为重复了uid(与root帐号的uid转载 2017-10-11 15:13:40 · 677 阅读 · 0 评论 -
linux配置文件的一些调优
Linux中所有东西都是文件,一个socket就对应着一个文件描述符,因此系统配置的最大打开文件数以及单个进程能够打开的最大文件数就决定了socket的数目上限;但是linux是有文件句柄限制的,而且默认不是很高,一般都是1024,生产服务器用其实很容易就达到这个数量一、limits.conf文件工作原理limits.conf文件实际是Linux PAM(插入式认证模块,P转载 2017-10-09 11:51:43 · 425 阅读 · 0 评论 -
三个实例演示JavaThread Dump 日志分析
jstack Dump 日志文件中的线程状态dump 文件里,值得关注的线程状态有:死锁,Deadlock(重点关注) 执行中,Runnable 等待资源,Waiting on condition(重点关注) 等待获取监视器,Waiting on monitor entry(重点关注)暂停,Suspended对象等待中,Object.wait() 或 TIM转载 2017-09-21 11:53:14 · 363 阅读 · 0 评论 -
使用getopt命令解析shell脚本的命令行选项
在之前的一篇文章中,介绍了如何利用shell内置的getopts命令来帮助我们处理shell脚本选项和参数,其缺点是只能处理短选项,无法处理长选项。下面,本文将要介绍的是getopt命令,它可以同时处理短选项和长选项。首先,getopt命令不是一个标准的unix命令,但它在大多数Linux的发行版中都自带了有,如果没有,也可以从getopt官网上下载安装。在getopt的较老版本中转载 2017-09-20 16:21:54 · 900 阅读 · 0 评论 -
Linux服务器性能评估与优化(二)
1、Linux内核参数优化 内核参数是用户和系统内核之间交互的一个接口,通过这个接口,用户可以在系统运行的同时动态更新内核配置,而这些内核参数是通过Linux Proc文件系统存在的。因此,可以通过调整Proc文件系统达到优化Linux性能的目的。一、sysctl命令sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数转载 2017-09-19 11:14:04 · 448 阅读 · 0 评论 -
linux实战(二)----shell脚本监控实例-----日志截取三个命令在性能监控等运用中的实例解析
上篇文章我们已经大概了解了 日志截取常用的三个命令:grep sed awk。具体可参考:linux实战(一)----日志的截取-----文本过滤器grep、文本流式编辑器sed、报表生成器awk的运用本文主要记录 这三个命令的运用,一些监控实例的讲解。对进程是否存在进行监控思路在对进程进行监控时,也转载 2017-09-19 11:11:36 · 1365 阅读 · 0 评论 -
手把手教你用Strace诊断问题
早些年,如果你知道有个 strace 命令,就很牛了,而现在大家基本都知道 strace 了,如果你遇到性能问题求助别人,十有八九会建议你用 strace 挂上去看看,不过当你挂上去了,看着满屏翻滚的字符,却十有八九看不出个所以然。本文通过一个简单的案例,向你展示一下在用 strace 诊断问题时的一些套路。如下真实案例,如有雷同,实属必然!让我们看一台高负载服务器的 top 结果转载 2017-09-19 10:48:32 · 415 阅读 · 0 评论 -
JVM性能参数优化
JVM性能参数优化以上是jdk1.7的默认GC回收器Java的gc回收的类型主要有几种 UseSerialGC,UseConcMarkSweepGC,UseParNewGC,UseParallelGC,UseParallelOldGC,UseG1GC,而这几个参数是如何搭配的,实际上只要看下面的代码就非常清楚转载 2017-09-08 14:06:35 · 228 阅读 · 0 评论 -
使用jmap和MAT分析JVM堆内存
我的一台生产环境机器每次运行几天之后就会莫名其妙的宕机,分析日志之后发现在tomcat刚启动的时候内存占用比较少,但是运行个几天之后内存占用越来越大,通过jmap命令可以查询到一些大对象引用没有被及时GC,这里就要求解决内存泄露的问题。Java的内存泄露多半是因为对象存在无效的引用,对象得不到释放,如果发现Java应用程序占用的内存出现了泄露的迹象,那么我们一般采用下面的步骤分转载 2017-09-08 14:03:34 · 592 阅读 · 0 评论 -
Java程序内存分析:使用mat工具分析内存占用
在工作中可能会遇到内存溢出这种灾难性的问题,那么程序肯定是存在问题,找出问题至关重要,上一篇文章讲了jmap命令的使用方法,当然用jmap导出的文件我们也看不懂啊,那就交给memory analyzer(mat)这个工具,让他帮助我们来观察程序的内存分布情况吧。 1. 用jmap生成堆信息2. 将堆信息导入到mat中分析 3. 生成分析报告HistogramDominato转载 2017-09-08 14:02:09 · 288 阅读 · 0 评论 -
jdk工具之jmap(java memory map)、 mat之四--结合mat对内存泄露的分析、jhat之二--结合jmap生成的dump结果在浏览器上展示
1、介绍打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。 可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。转载 2017-09-08 13:59:59 · 444 阅读 · 0 评论 -
线程池 和数据库连接池
线程池的原理: 来看一下线程池究竟是怎么一回事?其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态。可能你也许会问:为什么要搞得这么麻烦,如果每当客户端有新的请求时,我就创建一个新的线程...转载 2018-04-08 16:08:05 · 191 阅读 · 0 评论