Linux常用命令之性能优化
一、性能优化是什么?
性能优化是发挥机器本来的性能。
二、性能优化的几个常用维度
2.1 CPU
命令:top
1.若CPU负载高如何定位:
- A. top命令找到CPU利用高的进程(原理:方法是由线程执行的,线程是在进程下的,找到进程下cpu最高的线程就能定位到方法)
- B.Shift + H 切换到线程模型 找到线程执行cpu高的线程号
- C. jstack pid > p.txt 用 jstack 导出线程的 dump (记住这个问题有时候没有那么明显 一直 cpu100%,可能是间歇性的 cpu 高所以这个能抓住这个线程还是要看运气)
- D.把线程号转 16 进制 printf “%x \n” 40437
- E.到刚刚导出的 p.txt 里面检索定位到
2.2 Memory
命令:free
1.buffer和cache
两者都是RAM中的数据。简单来说,buffer是即将要被写入磁盘的,cache是被从磁盘中读取出来的。
这两者都是为了提高IO性能的,并由OS管理,并非应用自己分配的内存,而是OS自己根据需要对空闲内存进行额外利用。因为这部分只是缓存,降低IO,提升性能,只要应用程序有需要,OS可以直接将buffer写入磁盘中,将cache删掉来得到空闲内存给应用程序使用。
2.3 IO
命令:iostat
df -h 查看磁盘空间
可通过不断通过FileInputStram和FileOutputStream来得到IO缓存高的情形。
2.4 Network
命令:nicstat
三、性能优化有关的术语
吞吐量
吞吐量:对单位时间内完成的工作量的度量
平均响应时间
平均响应时间:提交请求和返回该请求的响应之间使用的时间
平均响应时间越短,系统吞吐量越大;平均响应时间越长,系统吞吐量越 小;但是,系统吞吐量越大,未必平均响应时间越短;因为在某些情况(例 如,不增加任何硬件配置)吞吐量的增大,有时会把平均响应时间作为牺牲, 来换取一段时间处理更多的请求。
tps: Transactions per Second
qps: Queries per Second
更多的请求。
tps: Transactions per Second
qps: Queries per Second