trace工具定位php性能问题 2015-10-30 | Linux/unix/mac 一、问题背景 一位同事反馈我们的一个接口每次返回需要5秒之久,我们一起review了代码,“惊喜”的发现居然在循环(大约900次)中调用了一个读缓存的操作,而这个缓存的key并没有改变,因此我们把这段代码移到了循环外面,再测,接口返回时间降到了2秒,呜呼!虽然提升了1倍,但明显不是…… Continue reading
linux性能篇之部署可回溯的工具sysstat、atop、oswatch、nmon 2015-10-29 | Linux/unix/mac 在企业应用中,除了经常会用到企业级的性能监控和告警工具(如nagios、zabbix),还会在服务器设备出现性能问题时,可以通过部署一些可以进行性能回溯和追踪的性能分析工具,便于在主机hang死或挂机时,定位主机各项指标是否过载,也可以定位到具体是哪些程序引发了性能瓶颈。 运维人员…… Continue reading
RH442之tuned/tuned-adm动态调优工具 2015-10-13 | Linux/unix/mac tuned/tuned-adm是RHEL/CentOS 在 6.3 版本以后引入的一套新的系统调优工具,其使用python语言开发,其中 tuned 是服务端程序,用来监控和收集系统各个组件的数据,并依据数据提供的信息动态调整系统设置,达到动态优化系统的目的;tuned-adm 是客户端程序,用来和 tuned 打…… Continue reading
RH442之Linux文件系统选择 2015-10-12 | Linux/unix/mac 通过综合使用多种标准文件系统Benchmarks对Ext3, Ext4, Reiserfs, XFS, JFS, Reiser4的性能测试对比,对不同应用选择合适的文件系统给出以下方案,供大家参考。文件系统性能测试数据见附表。 1、大量小文件(LOSF, Lost of small files)I/O应用(如小图片) Reiserfs(首选), Ext4…… Continue reading
SSD优化案例:读策略优化和中断多核绑定 2015-10-11 | Linux/unix/mac IO优化除了磁盘选型、RAID级别设定等因素外,在kernel层也有IO调度与CPU中断可以优化。在RH442之linux IO调度(电梯算法)篇中提到了IO算法的选择与优化,而在无意间刚好看到了小米运维部站点上的一篇文章,也提到了一篇关于和IO优化相关的文章,这里摘录过来。也为R…… Continue reading
RH442之linux IO调度(电梯算法) 2015-10-10 | Linux/unix/mac Linux内核2。6开始引入了全新的IO调度子系统,IO调度器的总体目标是希望让磁头能够总是往一个方向移动,移动到底了再往反方向走,这恰恰就是现实生活中的电梯模型,所以IO调度器也被叫做电梯。 (elevator)而相应的算法也就被叫做电梯算法。而Linux中IO调度的电梯算法有好…… Continue reading
一次内核hung task分析 2015-04-18 | Linux/unix/mac 1、内核hung task检测机制由来 我们知道进程等待IO时,经常处于D状态,即TASK_UNINTERRUPTIBLE状态,处于这种状态的进程不处理信号,所以kill不掉,如果进程长期处于D状态,那么肯定不正常,原因可能有二: 1)IO路径上的硬件出问题了,比如硬盘坏了(只有少数情…… Continue reading
Linux下内存使用分析思路 2015-01-11 | Linux/unix/mac 在系统层面最基础最重要的三个指标是CPU、IO、memory,本篇主要汇总定位分析内存使用的常见思路。在进行下一步之前,需要先对top、free 、/proc/meminfo、slabtop、nmon等工具要有一个概念和认识。如果可能的话,最好还需要先了解下/proc/$pid下的…… Continue reading
linux用smem分析内存占用情况 2015-01-10 | Linux/unix/mac 开源软件 在 也看linux内存去哪儿了 篇中大致了解了linux内存大的分类,同时为了精确计算,在 精确计算rss使用值 篇中又使用简单的shell 计算将RSS项内存做了计算。本篇继续对内存的使用做一个探讨,本篇着重推荐一个工具smem 。smem 是一个python写的内存查看工具,源代码只有70…… Continue reading
也看linux内存去哪儿了 2015-01-05 | Linux/unix/mac 前两天一台128G内存的oracle主机发生故障触发kdump,最终由于var目录空间不足,导致kdump生成不完全。结合之前redhat给出的建议,crash设置的空间最好大于memory 空间。对此我们做了一个简单的计算,认为kdump主机生成的是运行在内存里的信息 ,虽然主机有…… Continue reading