性能问题eg

Posted codestack

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能问题eg相关的知识,希望对你有一定的参考价值。

线上问题

./pidstat -w
Linux 3.6.5-Broadcom Linux ((none))     03/21/20        _armv7l_        (1 CPU)
15:04:17      UID       PID   cswch/s nvcswch/s  Command
15:04:17        0         1      0.03      0.00  busybox
15:04:17        0         2      0.00      0.00  kthreadd
15:04:17        0         3      0.11      0.00  ksoftirqd/0
15:04:17        0         5      0.00      0.00  kworker/0:0H
15:04:17        0         6      0.02      0.00  kworker/u:0
15:04:17        0         7      0.00      0.00  kworker/u:0H
15:04:17        0         8      0.00      0.00  migration/0
15:04:17        0         9      0.00      0.00  khelper
15:04:17        0        10      0.00      0.00  kdevtmpfs
15:04:17        0        11      1.22      0.00  kworker/0:1
15:04:17        0       442     55.11      0.08  spi1-list
15:04:17        0       461     30.52      0.03  mtdblock1
15:04:17        0      1026      0.48     17.77  db-server
/var #./iostat
Linux 3.6.5-Broadcom Linux ((none))     03/26/20        _armv7l_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          11.18    0.00    3.47    1.60    0.00   83.74

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
mtdblock3         0.10         4.69         0.00         0.00    2633845          0          0


#./iostat -d 1
Linux 3.6.5-Broadcom Linux ((none))     03/26/20        _armv7l_        (1 CPU)

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
mtdblock3         0.10         4.69         0.00         0.00    2635418          0          0

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
mtdblock3         7.44       299.17         0.00         0.00        362          0          0

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
mtdblock3         9.09       422.73         0.00         0.00        465          0          0

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
mtdblock3         2.91       189.32         0.00         0.00        195          0          0

^C
 #./pidstat -d 1 2
Linux 3.6.5-Broadcom Linux ((none))     03/26/20        _armv7l_        (1 CPU)

15:23:15      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command

15:23:16      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command

Average:      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command
 #top
Mem: 162664K used, 75868K free, 0K shrd, 5516K buff, 27328K cached
CPU:  37% usr  11% sys   0% nic   0% idle  50% io   0% irq   0% sirq
Load average: 4.83 4.53 4.44 1/122 983
  PID  PPID USER     STAT   VSZ %VSZ %CPU COMMAND
 1029   909 root     S     113m  48%   6% /user/sbin/ops-
 1026   909 root     S     9588   4%   6% /user/sbin/ovsdb-server --remote=punix
  442     2 root     SW       0   0%   1% [spi1-list]
  461     2 root     SW       0   0%   1% [mtdblock1]
 1187   909 root     S    19812   8%   1% /user/sbin/logs -n /dev/user_log
 1028   909 root     S    24340  10%   1% /user/sbin/helper -n /dev/user_a
 1055   909 root     S    48688  20%   0% /user/sbin/lagd --pidfile --log-w
 1119   909 root     S    26016  11%   0% /user/sbin/clid
 1056   909 root     S     8680   4%   0% /user/sbin/arpmgrd --pidfile --log
 1111   909 root     S     3044   1%   0% /user/boa -d
 3368   850 root     S     1616   1%   0% /usr/sbin/drop
  980  3401 root     R      848   0%   0% top
 1102   909 root     S    37656  16%   0% /user/sbin/ops-loop
 1118   909 root     S    37192  16%   0% /user/sbin/confd 
 1033   909 root     S    34724  15%   0% /user/sbin/pidfile 
 1044   909 root     S    33116  14%   0% /user/sbin/xxxx
 1039   909 root     S    26344  11%   0% /user/sbin/vtysh -N
 1169   909 root     S    24512  10%   0% /user/sbin/nlack
 1063   909 root     S    23020  10%   0% /user/sbin/user
^C061   909 root     S    13740   6%   0% /user/sbin/xxxxx

说明:IO 高,Cswch/s:每秒主动任务上下文切换数量 高, 但是看不到具体进程io数据,说明是内存 cache bufer导致io 高需要vmstat 工具查看。

 

附上:pidstat 用法:pidstat [ 选项 ] [ <时间间隔> ] [ <次数> ]

常用的参数:

  • -u:默认的参数,显示各个进程的cpu使用统计
  • -r:显示各个进程的内存使用统计
  • -d:显示各个进程的IO使用情况
  • -p:指定进程号
  • -w:显示每个进程的上下文切换情况
  • -t:显示选择任务的线程的统计信息外的额外信息

pidstat -u
使用-u选项,pidstat将显示各活动进程的cpu使用统计,执行”pidstat -u”与单独执行”pidstat”的效果一样。
pidstat -r
/var #./pidstat -r 1 3
Linux 3.6.5-Broadcom Linux ((none)) 03/26/20 _armv7l_ (1 CPU)

16:55:32 UID PID minflt/s majflt/s VSZ RSS %MEM Command
16:55:34 0 463 715.09 0.00 5232 2496 1.05 pidstat
16:55:34 0 909 8.49 0.00 8520 1276 0.53 xxxx
16:55:34 0 1026 16.98 0.00 9624 3672 1.54 xx-server
16:55:34 0 1028 47.17 0.00 24340 3932 1.65 xxx
16:55:34 0 1029 36.79 0.00 115900 29044 12.18 ops-xxx
16:55:34 0 1033 0.94 0.00 34724 3488 1.46 ops-xx
16:55:34 0 1039 6.60 0.00 26016 4512 1.89 eee
16:55:34 0 1044 3.77 0.00 33116 2120 0.89 ops-xxx
16:55:34 0 1055 9.43 0.00 48688 2392 1.00 xx-xx
16:55:34 0 1056 2.83 0.00 8680 2360 0.99 ops-xx
16:55:34 0 1063 12.26 0.00 23020 1952 0.82 xxx-xxx
16:55:34 0 1102 0.94 0.00 37656 2548 1.07 ops-xx-de
16:55:34 0 1118 10.38 0.00 37192 14432 6.05 xxx
16:55:34 0 1125 12.26 0.00 8552 1200 0.50 xx
16:55:34 0 1169 0.94 0.00 24512 1196 0.50 xxx
16:55:34 0 1187 0.94 0.00 19812 816 0.34 logs

使用-r选项,pidstat将显示各活动进程的内存使用统计
ID:进程标识符
Minflt/s:任务每秒发生的次要错误,不需要从磁盘中加载页
Majflt/s:任务每秒发生的主要错误,需要从磁盘中加载页
VSZ:虚拟地址大小,虚拟内存的使用KB
RSS:常驻集合大小,非交换区五里内存使用KB
Command:task命令名

pidstat -d 1 3
#./pidstat -d 1 3
Linux 3.6.5-Broadcom Linux ((none)) 03/26/20 _armv7l_ (1 CPU)

17:02:05 UID PID kB_rd/s kB_wr/s kB_ccwr/s iodelay Command

17:02:06 UID PID kB_rd/s kB_wr/s kB_ccwr/s iodelay Command

17:02:07 UID PID kB_rd/s kB_wr/s kB_ccwr/s iodelay Command

Average: UID PID kB_rd/s kB_wr/s kB_ccwr/s iodelay Command


报告IO统计显示以下信息:
PID:进程id
kB_rd/s:每秒从磁盘读取的KB
kB_wr/s:每秒写入磁盘KB
kB_ccwr/s:任务取消的写入磁盘的KB。当任务截断脏的pagecache的时候会发生。
COMMAND:task的命令名


每个进程的上下文切换情况(-w)
pidstat -w -p 2831
./pidstat -w -p 1111 1 3
Linux 3.6.5-Broadcom Linux ((none)) 03/26/20 _armv7l_ (1 CPU)

17:05:05 UID PID cswch/s nvcswch/s Command
17:05:06 0 1111 13.59 0.00 boa
17:05:07 0 1111 34.65 21.78 boa
17:05:08 0 1111 41.58 117.82 boa
Average: 0 1111 29.84 46.23 boa
PID:进程id
Cswch/s:每秒主动任务上下文切换数量
Nvcswch/s:每秒被动任务上下文切换数量
Command:命令名

选择任务的线程的统计信息外的额外信息 (-t)
./pidstat -t -p 1026 1 3
Linux 3.6.5-Broadcom Linux ((none)) 03/26/20 _armv7l_ (1 CPU)

17:07:05 UID TGID TID %usr %system %guest %wait %CPU CPU Command
17:07:06 0 1026 - 0.00 0.00 0.00 0.00 0.00 0 xx-server
17:07:06 0 - 1026 0.00 0.00 0.00 0.00 0.00 0 |xxx-server

17:07:06 UID TGID TID %usr %system %guest %wait %CPU CPU Command
17:07:07 0 1026 - 6.93 0.99 0.00 0.00 7.92 0 xx-server
17:07:07 0 - 1026 6.93 0.99 0.00 0.00 7.92 0 |xx-server

TGID:主线程的表示
TID:线程id
%usr:进程在用户空间占用cpu的百分比
%system:进程在内核空间占用cpu的百分比
%guest:进程在虚拟机占用cpu的百分比
%CPU:进程占用cpu的百分比
CPU:处理进程的cpu编号
Command:当前进程对应的命令



以上是关于性能问题eg的主要内容,如果未能解决你的问题,请参考以下文章

adobeair:在本地保存数据片段

是否可以动态编译和执行 C# 代码片段?

jQuery性能优化的一些参考建议

Xamarin.Android WebView App性能问题

编写自定义表达式解析器或使用ANTLR库?

Bzoj2339--Hnoi2011卡农