程序优化基础知识
影响程序性能的服务器指标: 内存 CPU 磁盘大小、以及磁盘IO 网络带宽。

压测不得不说的命令top
第一行,任务队列信息,同 uptime 命令的执行结果
系统时间:19:24:30 运行时间:125天 1小时 30 min, 当前登录用户: 2 user load average: 0.22, 0.30, 0.40 average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。 load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。 这个数/(除以)逻辑CPU的数量反映出服务器的运行情况: 在 0.00 和 1.00 之间是通畅状态,理想状态是 0.70左右 load = 1表示CPU所有的资源都在处理请求,没有剩余的资源可以利用了。 load >= 2则表示CPU已经超负荷运作,另外还有一倍的线程正在等待处理。 load >= 5: 系统在超负荷运转了,服务随时是会挂掉。
第二行,Tasks — 任务(进程)
总进程:242 total, 运行:1 running, 休眠:241 sleeping, 停止: 0 stopped, 僵尸进程: 0 zombie
第三行,cpu状态信息
1.1%us【user space】— 用户空间占用CPU的百分比。
进程在用户地址空间中消耗 CPU 时间的百分比。像 shell程序、各种语言的编译器、数据库应用、web 服务器和JAVA服务都算是运行在用户地址空间的进程,绝大多数的 CPU 时间都是运行在用户空间。
0.3%sy【sysctl】— 内核空间占用CPU的百分比。
进程在内核地址空间中消耗 CPU 时间的百分比。所有进程要使用的系统资源都是由 Linux 内核处理的。当处于用户态(用户地址空间)的进程需要使用系统的资源时,比如:JAVA服务需要分配一些内存、或是执行 IO 操作。有或者一个程序创建一个子进程,此时就会进入内核态(内核地址空间)运行。事实上,决定进程在下一时刻是否会被运行的进程调度程序就运行在内核态。消耗在内核态的时间应该是越少越好。在实践中有一类典型的情况会使 sy 变大,那就是大量的 IO 操作,因此在调查 IO 相关的问题时需要着重关注它,比如:JAVA服务的日志打印。
0.0%ni【nice 】— 改变过优先级的进程占用CPU的百分比 。
可以通过 nice 值调整进程用户态的优先级。这里显示的 ni 表示调整过 nice 值的进程消耗掉的 CPU 时间。如

最低0.47元/天 解锁文章
1155

被折叠的 条评论
为什么被折叠?



