AIX系统CPU监控与评估

一, VMSTAT命令(CPU)

1.1 cpu

1.2 kthr(内核等待)

1.3 faults故障

1.4 memory(内存)

1.5 page磁盘交换

二, iostat命令

三, Sar命令

3.1 实时采样和显示

3.2 sar –P(报告每个处理器的信息)

3.3 sar –c (系统调用率)

3.4 sar –q(运行队列长度和交换队列长度)

四, tprof监视进程的cpu使用

4.1 实时或在线方式

五, ps命令

5.1 显示占用cpu最高的进程

六, 小结


AIX系统CPU监控与评估

中央处理器是系统最快的组件之一. 在某一个时间单位内对单个程序来说保持100%的CPU占用率(也就是说空闲0%, 等待0%)超过几秒钟是很少见的. 如果监视器长时间地显示CPU占用率为100%, 则很有可能是某个程序陷入了死循环. 即使程序仅仅是占用较多资源而不是崩溃了, 也需要将他们识别出来并进行处理.

一, VMSTAT命令(CPU)

该命令可迅速提供关于各种系统资源和与之相关的性能问题的简要信息.

Vmstat命令报告关于内核线程的统计信息, 包括处于运行和等待队列中的, 内存中的, 页面调度中的, 磁盘中的, 中断,系统调用, 上下文切换和CPU活动的内核线程. 所报告的CPU活动是用户方式, 系统方式, 空闲时间和等待磁盘IO的百分比细目分类.

作为一个cpu监视器, vmstat命令优于iostat命令, 因为vmstat命令是滚动的, 使得它的每一行报告的输出更容易扫描. 并且如果有很多磁盘链接到系统中, 由此所涉及到的开销更少.

# vmstat 2

System configuration: lcpu=8 mem=8192MB

kthr    memory              page              faults        cpu

----- ----------- ------------------------ ------------ -----------

r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa

0  0 1596212 186517   0   0   0   0    0   0 157 2242 757  5  0 95  0

1  0 1602824 179905   0   0   0   0    0   0 276 8731 986 23  1 76  0

1  0 1609397 173332   0   0   0   0    0   0 298 5696 1118 27  1 72  0

1  0 1609407 173322   0   0   0   0    0   0 276 5630 1046 23  1 77  0

1  0 1609593 173136   0   0   0   0    0   0 1209 10754 3699 10  3 87  0

1  0 1609630 173099   0   0   0   0    0   0 637 8595 2061 26  1 72  0

0  0 1596477 186252   0   0   0   0    0   0 330 3439 1200  8  1 91  0

1  0 1603954 178775   0   0   0   0    0   0 227 8673 897 26  1 74  0

1  0 1609455 173274   0   0   0   0    0   0 311 4853 1116 20  1 79  0

2  0 1609444 173285   0   0   0   0    0   0 268 5253 1078 21  1 78  0

1  1 1609464 173265   0   0   0   0    0   0 1038 8405 3346  8  3 89  1

1  0 1609469 173260   0   0   0   0    0   0 533 6095 1857 22  1 77  0

1  0 1596188 186541   0   0   0   0    0   0 201 28445 910 23  1 75  0

1  0 1596187 186542   0   0   0   0    0   0 166 45170 767 24  1 75  0

1  0 1596378 186351   0   0   0   0    0   0 127 60695 708 24  2 75  0

1  0 1596190 186539   0   0   0   0    0   0 171 53852 808 24  2 75  0

1  0 1596329 186400   0   0   0   0    0   0 704 5027 1856  4  1 95  0

0  0 1596357 186372   0   0   0   0    0   0 841 6574 2227  3  1 96  0

最佳利用是让CPU在100%的时间中工作. 这适用于单用户系统的情况, 不需要共享CPU. 总的来说, 如果us+sy时间低于90%, 则不认为单用户系统是CPU受限制的. 但是, 如果一个多用户系统中us+sy时间超过80%, 则进程可能要花时间在运行队列中等待. 响应时间和吞吐量会受损害.

要检查CPU是否是瓶颈, 考虑vmstat报告中的四个cpu列和两个kthr(内核线程)列. 查看故障列也是值得的.

1.1 cpu

在给定的时间间隔内使用cpu时间的百分比细分.

kthr    memory              page              faults        cpu

----- ----------- ------------------------ ------------ -----------

r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa

0  0 1596212 186517   0   0   0   0    0   0 157 2242 757  5  0 95  0

1  0 1602824 179905   0   0   0   0    0   0 276 8731 986 23  1 76  0

1  0 1609397 173332   0   0   0   0    0   0 298 5696 1118 27  1 72  0

Us:

用户方式下所花费的cpu时间百分比. 进程可以在用户方式下执行, 也可以在系统(内核)方式下执行. 当在用户方式下时,进程在它自己的应用程序代码中执行, 不需要内核资源来进行计算, 管理内存或设置变量.

Sy:

系统方式下执行一个进程所花时间的百分比. 这包括内核进程(kernel procedures)和其他需要访问内核资源的进程所消耗的cpu资源.

Id:

没有未完成的磁盘io时cpu空闲或等待的时间百分比. 由ps命令(带有-k或-g 0参数)生成的报告将它确定为kproc或wait.

Wa:

暂挂本地磁盘io和NFS加载的磁盘的cpu空闲百分比. 如果在cpu等待时至少有一个未完成的磁盘io, 该时间就归为IO等待时间. 除非进程使用异常IO, 否则对磁盘的io请求会导致调用的进程阻塞, 知道请求完成为止.

超过25%的wa值可以表示磁盘子系统没有被正确平衡, 或者这也可能是磁盘密集工作负载的结果.

1.2 kthr(内核等待)

在采样时间间隔上对各种队列中的内核线程数求的每秒平均值.

kthr    memory              page              faults        cpu

----- ----------- ------------------------ ------------ -----------

r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa

0  0 1596212 186517   0   0   0   0    0   0 157 2242 757  5  0 95  0

1  0 1602824 179905   0   0   0   0    0   0 276 8731 986 23  1 76  0

1  0 1609397 173332   0   0   0   0    0   0 298 5696 1118 27  1 72  0

R:

可运行的内核线程平均数, 包括正在运行的线程和正在等待cpu的线程, 如果这个数字大于cpu的数目, 至少有一个线程要等待cpu, 等待cpu的线程越多, 越有可能对性能产生影响.

B:

每秒在等待队列中的内核线程数, 这包括正在等待文件系统io的线程或者由于内存装入控制而暂挂的线程.

P:

对于vmstat –I, 是每秒等待原始设备IO的线程数目. 等待文件系统IO的线程不包括在这里.

1.3 faults故障

kthr    memory              page              faults        cpu

----- ----------- ------------------------ ------------ -----------

r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa

0  0 1596212 186517   0   0   0   0    0   0 157 2242 757  5  0 95  0

1  0 1602824 179905   0   0   0   0    0   0 276 8731 986 23  1 76  0

In:

每秒设备中断数

Sy:

每秒系统调用次数.

Cs:

每秒钟的上下文切换次数. 物理cpu资源细分为10毫秒的逻辑时间片, 假设一个线程调度被运行, 它将一直运行直到它的时间片用完,或被抢先,或者自愿放弃cpu控制权. 当给予另一个线程cpu控制权时, 必须保存前一个线程的上下文或工作环境,并且必须装入当前线程的上下文. 操作系统有一个很有效的上下文切换过程, 所以每次切换并不耗资源. 任何上下文切换的显著增加, 如当cs比磁盘io和网络信息包速率高很多, 都应进行进一步调查.

1.4 memory(内存)

kthr    memory              page              faults        cpu

----- ----------- ------------------------ ------------ -----------

r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa

0  0 1596212 186517   0   0   0   0    0   0 157 2242 757  5  0 95  0

1  0 1602824 179905   0   0   0   0    0   0 276 8731 986 23  1 76  0

1  0 1609397 173332   0   0   0   0    0   0 298 5696 1118 27  1 72  0

Avm列表表示活动虚拟内存的页面数, 每页一般4KB

Fre表示空闲的页面数.

1.5 page磁盘交换

kthr    memory              page              faults        cpu

----- ----------- ------------------------ ------------ -----------

r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa

0  0 1596212 186517   0   0   0   0    0   0 157 2242 757  5  0 95  0

1  0 1602824 179905   0   0   0   0    0   0 276 8731 986 23  1 76  0

1  0 1609397 173332   0   0   0   0    0   0 298 5696 1118 27  1 72  0

Re: 该列无效

Pi: 从磁盘交换到内存的交换页(调页空间)数量, 4KB/页. 当进程访问一个交换页时就产生一个缺页故障.

Po: 从内存交换到磁盘的交换页数量, 4KB/页. 如果写入的交换页在交换区间内不存在或者已经做了修改, 则写入交换区间.如果不被再次访问, 则会留在调度空间中直到进程终止或者放弃空间.

Fr: 根据页面替换算法每秒释放的页数. VMM的页面替换例程会定时扫描页面祯表, 以释放一些长时间没有访问的数据页到空闲列表. 在这个过程中, 计算页面不会产生IO, 工作页面如果数据没有发生修改, 也不需要写回磁盘, 不会产生IO.

Sr: 为了释放页面扫描的页数. Sr值如果比fr值高很多, 说明替换算法要查找可疑替换的页面越困难.

Cy: 每秒页面替换代码扫描了PFT多少次, 因为增加空闲列表达到maxfree值, 不一定需要完全扫描PFT表, 就是说这个值一般会小于1, 而所有vmstat输出都为整数, 所以cy通常为0.

二, iostat命令

Iostat命令是活的第一印象的最快方法, 这个工具也报告cpu统计信息.

# iostat -t 2 5

System configuration: lcpu=8

tty:      tin         tout    avg-cpu: % user % sys % idle % iowait

0.0         16.0                1.0   0.3   98.6      0.1

0.0         70.0                6.1   0.3   93.6      0.0

0.0         34.5                5.5   0.4   94.0      0.1

0.0         35.7                1.4   0.3   98.3      0.0

0.0         33.0                3.7   0.4   95.9      0.0

三, Sar命令

Sar命令收集关于系统的统计数据.

Sar命令会增加系统负载, 如果采样频率较高就会加剧预先存在的性能问题.

Aix系统维护了一系列系统活动计数器, 用来记录各种活动并提供sar命令报告的数据. Sar命令不会导致这些计数器被更新或使用, 不论sar命令是否运行这些计数器都会持续工作. 根据指定的sar命令的采样速率和采样次数, 它仅仅从这些计数器中提取数据并保存下来.

通过指定参数, sar命令提供了排队, 页面调度, TTY和许多其他的统计信息. Sar命令的一个重要功能是它会报告系统级(所有处理器的综合)的cpu统计信息(对一些结果取平均值, 以百分比表示, 对其他求和), 或者报告每个独立处理器的统计信息.

3.1 实时采样和显示

# sar -u 1 10

AIX SISDB_B 3 5 00C674AF4C00    07/14/09

System configuration: lcpu=8  mode=Capped

16:24:44    %usr    %sys    %wio   %idle   physc

16:24:45      17       5       2      76    4.00

16:24:46      22       5       1      72    4.03

16:24:47      37       6       1      56    3.98

16:24:48      19       4       3      74    3.94

16:24:49      16       4       1      79    4.05

16:24:50      27       5       2      67    3.97

16:24:51      14       4       1      80    4.00

16:24:52      14       4       1      80    4.01

16:24:53      16       4       1      79    3.99

16:24:54       4       1       0      95    3.98

Average       19       4       1      76    4.00

报告每个处理器或整个系统的统计信息. 当与-P标志一起使用时, 为每个指定的处理器提供此信息; 否则, 只在系统范围内提供此信息. 因为-u标志信息以百分比表示, 所以系统范围信息只是每个处理器统计信息的平均值.

3.2 sar –P(报告每个处理器的信息)

-P选项报告指定处理器的每个处理器统计信息. 通过指定ALL关键字, 可以报告每个单独的处理器统计信息和所有处理器的平均值.

# sar -uP ALL 3 2

AIX SISDB_B 3 5 00C674AF4C00    07/14/09

System configuration: lcpu=8  mode=Capped

16:33:32 cpu    %usr    %sys    %wio   %idle   physc

16:33:35  0        8       2       1      89    0.54

1        0       0       0     100    0.45

2        5       3       0      93    0.53

3        0       0       0     100    0.47

4       18       3       1      78    0.57

5        0       0       0     100    0.42

6        8       3       1      88    0.54

7        0       0       0     100    0.46

-        6       2       0      93    3.99

16:33:38  0       23       3       0      74    0.59

1        0       0       0     100    0.41

2        8       2       1      89    0.54

3        0       0       0     100    0.46

4        2       2       0      96    0.52

5        0       0       0     100    0.48

6        4       2       0      94    0.53

7        0       0       0     100    0.47

-        5       1       0      93    4.00

Average   0       16       3       0      81    0.57

1        0       0       0     100    0.43

2        6       3       0      91    0.53

3        0       0       0     100    0.47

4       11       3       0      86    0.55

5        0       0       0     100    0.45

6        6       2       0      91    0.53

7        0       0       0     100    0.46

-        5       2       0      93    4.00

每节的最后一行在cpu一列中以一个短线(-)开始, 是所有处理器的平均值. 只有当使用-P ALL选项时才会显示一个平均值.

3.3 sar –c (系统调用率)

-c选项显示了系统调用率.

# sar -c 1 3

AIX SISDB_B 3 5 00C674AF4C00    07/14/09

System configuration: lcpu=8  mode=Capped

16:38:47 scall/s sread/s swrit/s  fork/s  exec/s rchar/s wchar/s

16:38:48    8792     681     353    2.00    2.00 2364515   49391

16:38:49    7785     281     276    0.00    0.00   68447   30005

16:38:50    8997     392     392    0.00    0.00   51992   58212

Average     8525     451     340    0.67    0.67  828318   45869

-c选项报告系统调用, 当与-P标志一起使用时, 只为每个指定处理器提供此信息; 否则在系统范围内提供此信息. 将显示以下数值:

说明

Scall/S

报告系统调用总数

Sread/S

读系统调用总数

Swrite/S

写系统调用总数

Fork/S

Fork系统调用总数

Exec/S

Exec系统调用总数

Rchar/S

读系统调用传送的字符总数

Wchar/S

写系统调用传送的字符总数

Vmstat也显示系统调用率, 但如果这些系统调用时read(), write(), fork(), exec()和其他调用, sar命令也可以显示他们. 请特别注意fork/s这一列. 如果它较高, 可能需要使用记账实用程序(如trace命令或tprof命令)进行进一步调查.

3.4 sar –q(运行队列长度和交换队列长度)

# sar -q 1 10

AIX SISDB_B 3 5 00C674AF4C00    07/14/09

System configuration: lcpu=8  mode=Capped

16:47:19 runq-sz %runocc swpq-sz %swpocc

16:47:20     1.0     100

16:47:21     2.0     100

16:47:22     1.0     100

16:47:23     1.0     100

16:47:24     1.0     100

16:47:25

16:47:26

16:47:27     1.0     100

16:47:28     1.0     100

16:47:29

Average      1.1      70

说明

Runq-sz

平均内核线程数

%runocc

运行队列占用的时间百分比

Swpq-sz

等待页面调入的内核线程数的平均值

Swpocc

调动队列占用的时间百分比

-q选项可以指出系统中是否运行太多的作业(runq-sz), 或有一个潜在的页面调度瓶颈. 在一个高度事务性的系统中, 运行队列可能有几百个, 因为每个事务只使用少量的cpu时间. 如果页面调度是主要问题, 则运行vmstat命令, 高的io等待表明存在严重的磁盘争用活动, 或由于内存不足而产生过多的页面调度.

四, tprof监视进程的cpu使用

Tprof用于统计每个进程的cpu使用情况. 对任何使用可能是cpu受限的情况, 以及想了解程序的哪些部分占用大量cpu的人, 该命令是一个有用的工具.

Tprof可用以下四种方式运行;

1, 实时或在线方式

2, 人工离线方式;

3, 自动离线方式;

4, 后处理方式

4.1 实时或在线方式

如果指定-x标志但未指定-A标记, 则tprof以实时方式运行. 在实时方式下, tprof在后台启动AIX trace实用程序并处理所产生的跟踪数据. 当被概要分析的程序结束时, tprof收集符号名称信息并生成报告.

# tprof -x sleep 10

Tue Jul 14 17:09:01 2009

System: AIX 5.3 Node: i2db Machine: 00CC886E4C00

Starting Command sleep 10

stopping trace collection.

Generating sleep.prof

# ls

perl01      sleep.prof

# more sleep.prof

Configuration information

=========================

System: AIX 5.3 Node: i2db Machine: 00CC886E4C00

Tprof command was:

tprof -x sleep 10

Trace command was:

/usr/bin/trace -ad -M -L 1722525696 -T 500000 -j 000,00A,001,002,003,38F,005,006,134,139,5A2,5A5,465,234, -o -

Total Samples = 685

Traced Time = 10.03s (out of a total execution time of 10.03s)

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Process                                Freq  Total Kernel   User Shared  Other

=======                                ====  ===== ======   ==== ======  =====

wait                                      4 100.00 100.00   0.00   0.00   0.00

=======                                ====  ===== ======   ==== ======  =====

Total                                     4 100.00 100.00   0.00   0.00   0.00

Process                   PID      TID  Total Kernel   User Shared  Other

=======                   ===      ===  ===== ======   ==== ======  =====

wait                     8196     8197  55.91  55.91   0.00   0.00   0.00

wait                    57372    69667  14.74  14.74   0.00   0.00   0.00

wait                    53274    61471  14.74  14.74   0.00   0.00   0.00

wait                    49176    57373  14.60  14.60   0.00   0.00   0.00

=======                   ===      ===  ===== ======   ==== ======  =====

Total                                  100.00 100.00   0.00   0.00   0.00

上述命令运行10秒, 在当前目录下创建一个名为sleep.tprof的文件. Sleep.tprof文件中字段total为此进程调度到的cpu次数, tprof的输出准确地显示出哪个进程在使用cpu时间.

在上面的报告中我们看到, 大部分cpu时间都是被wait占用的, 这里的wait实际上是idle进程, 可以表明这个系统是一个完全空闲的系统.

五, ps命令

Ps命令主要用来显示进程的当前状态.

5.1 显示占用cpu最高的进程

# ps aux |head -20

USER        PID %CPU %MEM   SZ  RSS    TTY STAT    STIME  TIME COMMAND

root      57372  6.1  0.0  384  384      - A      Jan 10 131504:45 wait

root      73764  6.1  0.0  384  384      - A      Jan 10 129539:44 wait

root      65568  6.0  0.0  384  384      - A      Jan 10 128808:58 wait

root       8196  5.9  0.0  384  384      - A      Jan 10 126804:12 wait

root      61470  5.9  0.0  384  384      - A      Jan 10 125464:31 wait

root      77862  5.7  0.0  384  384      - A      Jan 10 122563:54 wait

root      69666  5.7  0.0  384  384      - A      Jan 10 121680:22 wait

root      53274  5.6  0.0  384  384      - A      Jan 10 119426:46 wait

oracle   409836  1.9  1.0 57344 81668      - A    16:21:14  9:32 oracleSISDB2 (LO

oracle   856126  1.4  1.0 57140 81464      - A    15:25:53 12:48 oracleSISDB2 (LO

oracle   598078  0.7  1.0 56740 81064      - A    17:18:20  0:20 oracleSISDB2 (LO

oracle   606456  0.4  1.0 56036 80360      - A    17:21:46  0:05 oracleSISDB2 (LO

oracle   966862  0.1  1.0 55144 79468      - A      Jul 08 70:32 oracleSISDB2 (LO

oracle   442494  0.1  1.0 58984 83308      - A      Feb 16 1711:01 ora_lms1_SISDB2

oracle   581808  0.1  1.0 59140 83464      - A      Feb 16 1706:08 ora_lms0_SISDB2

oracle   974952  0.1  1.0 55224 79548      - A    12:54:44  1:46 oracleSISDB2 (LO

root     176256  0.0  0.0  508  512      - A      Jan 10 211:58 /usr/sbin/syncd

oracle   573582  0.0  1.0 57680 82004      - A      Feb 16 142:18 ora_lmon_SISDB2

oracle   651300  0.0  1.0 57204 81528      - A      Feb 16 118:48 ora_diag_SISDB2

在这个输出结果中, 排在前面的8个root用户的wait进程, 这其实是cpu空闲的时候运行的空闲进程.

所以cpu最高的几个进程实际是下面的oracle用户的欧瑞aSISDB2进程, 我们可以用下面的方法查看具体的进程在干什么事情.

例如我们查看PID = 487432的进程, 可以使用下面的方法.

# su - oracle

[YOU HAVE NEW MAIL]

$ sqlplus /nolog

SQL*Plus: Release 10.2.0.3.0 - Production on Tue Jul 14 17:24:42 2009

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

SQL> conn / as sysdba

Connected.

SQL> oradebug setospid 487432

Oracle pid: 12, Unix process pid: 487432, image: oracle@i2db (MMNL)

SQL> oradebug event 10046 trace name context forever,level 8

Statement processed.

SQL> oradebug tracefile_name

/oracle/admin/arpdb/bdump/arpdb_mmnl_487432.trc

SQL> oradebug event 10046 trace name context off

Statement processed.

SQL> exit

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options

$ tkprof /oracle/admin/arpdb/bdump/arpdb_mmnl_487432.trc

output = arpdb_mm1.txt

TKPROF: Release 10.2.0.3.0 - Production on Tue Jul 14 17:31:29 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

$

六, 小结

  对于系统cpu的监控,建议:

  1)使用vmstat进行分析

  2)sar –P ALL 1 10 分析,多个cpu间的负载是否平衡

  3)ps aux 查看

  4)tprof查看更详细的信息

AIX系统CPU监控与评估相关推荐

  1. AIX系统CPU性能评估-1

    作者:Peak Wong出处:IT专家网2008-05-08 17:21 本文对cpu性能的命令作了详细介绍,并给出了对于系统cpu监控的建议. 1.vmstat 使用vmstat来进行性能评估,该命 ...

  2. Java获取Aix系统cpu和内存使用率

    背景 需要增加熔断功能,但是之前写的是linux系统,在Aix系统中失效了,需要重新写. 原来的linux用的是/proc/meminfo./proc/stat这两个文件进行监控的,但是Aix中没有这 ...

  3. 查看AIX系统cpu、内存、网卡、硬盘、HBA卡信息命令

    查看AIX系统的主机型号.序列号.CPU.内存.硬盘.网卡.网卡物理插槽位置信息.是否配置以太网通道.网卡链路状态.当前网络速率.HBA卡.HBA卡物理插槽位置信息.HBA卡WWN.HBA卡支持速率. ...

  4. linux服务器系统cpu监控-shell脚本

    监控服务器系统cpu占用情况: 1.使用top命令查看linux系统cpu使用情况:  #  top -b -n 1 | grep Cpu   (-b -n 1 表只需要1次的输出结果)      C ...

  5. AIX系统Memory性能评估

    AIX系统Memory性能评估 一, VMM的管理简介 1.1 空闲列表维护 1.2 文件占用内存的比率维护 1.3 vmstat命令显示内存中的数据页数 二, 使用vmstat确定内存的使用情况 2 ...

  6. linux系统CPU,内存,磁盘,网络流量监控脚本

    前序 1, #cat /proc/stat/  信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2, #vmstat –s   或者 #vmstat    虚拟内存统 ...

  7. 使用top命令监控linux系统cpu变化

    #!/bin/bash #使用top命令监控linux系统cpu变化#取系统当前时间(以追加的方式写入文件>>) date >> /home/monitor_script/cp ...

  8. 【性能测试】系统常用监控- -CPU

    性能测试系统常用监控- -CPU 文章目录 性能测试系统常用监控- -CPU 前言 一.常用概念 二.性能指标 三.性能分析 四.调优方法 五.常用分析 5.1 top命令解析 5.2分析思路 前言 ...

  9. 基于 HTML5 WebGL 的 CPU 监控系统

    前言 科技改变生活,科技的发展带来了生活方式的巨大改变.随着通信技术的不断演进,5G 技术应运而生,随时随地万物互联的时代已经来临.5G 技术不仅带来了更快的连接速度和前所未有的用户体验,也为制造业, ...

最新文章

  1. 使用 ThreadLocal 一次解决老大难问题!
  2. linux存储--虚拟内存详解MMU、页表(十)
  3. UART0串口编程(三):中断方式的串口编程;用中断编写发送函数
  4. GPU和显卡是什么关系?GPU会取代CPU吗?GPU和显卡的区别是什么?
  5. JavaScript 开发的40个经典技巧
  6. linux下oracle开机自启动,Linux下开机自动启动Oracle的设置
  7. HTTPS请求实现框架
  8. 数组对象的过滤(取出一项中的某些字段)
  9. Android 渗透测试学习手册 第八章 ARM 利用
  10. VC中TabControl控件使用方法(转载)
  11. bootstrap栅栏系统 解决当弹窗口变小的时候变成1列问题
  12. 奇偶排序(OddEven Sort)----(排序算法十一)
  13. 关系数据库、NoSQL和NewSQL数据库产品分类
  14. python爬考研_用Python爬取了考研吧1000条帖子,原来他们都在讨论这些!
  15. bufferedreader读取中文乱码_Python OpenCV与中文相关的三个常见问题
  16. 请教Parser Generator 开发工具中关于Lex和Yacc的问题
  17. 软件开发人月成本估算方法
  18. CMD 命令 文件操作
  19. 5个聚合导航网站,资源、工具、素材应有尽有
  20. PID控制器的离散化推导及其C语言实现

热门文章

  1. leetcode-387-字符串中的第一个唯一字符
  2. Layui表格之多列合并展示
  3. 在eclipse中安装与配置maven环境
  4. js中函数的参数为函数的情况即回调函数
  5. Swift-闭包理解
  6. jsp页面整体无法居中问题的解决方案
  7. ubtuntu server下的包管理
  8. 《模式识别与机器学习》学习笔记:2.2 多项变量
  9. gpio_direction_output 与 gpio_set_value
  10. S3 exercise -- 文件操作函数