- 浏览: 614168 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
月光杯:
问题解决了吗?
Exceptions in HDFS -
iostreamin:
神,好厉害,这是我找到的唯一可以ac的Java代码,厉害。
[leetcode] word ladder II -
standalone:
One answer I agree with:引用Whene ...
How many string objects are created? -
DiaoCow:
不错!,一开始对这些确实容易犯迷糊
erlang中的冒号 分号 和 句号 -
standalone:
Exception in thread "main& ...
one java interview question
优化linux系统需要考虑多方面的因素,因为各个因素之间相互关联,因此遇到性能问题以及性能的调节需要综合考虑,基本要素考虑与分析:
1 ,那些措施能确实提供性能?
1 )确保系统有足够的内存。
2 )使用集群;
3 )对磁盘进行优化(包括文件系统),提高 I/O 吞吐量;
4 )网络带宽;
2 ,影响系统性能的一般因素:
1 ) CPU
2 )内存
3 )磁盘 I/O 宽带
4 )网络 I/O 宽带
一般来说,现在的网络服务器针对提供的服务,其 CPU 速度是足够提供处理能力的;所以
影响性能的是磁盘和内存。内存不够,那么对虚拟内存管理系统来说要频繁地进行内存页
写到磁盘,磁盘写到内存的操作。这就是内存交换过程,很大地影响了性能。
而网络 I/O ,一般来说他不是独立的。所以要综合其他因素来考虑。
3 ,检查系统的性能情况。
1)CPU 使用情况分析
以下指标来衡量 CPU 的负载情况 .
总体利用率:
[root@linux stone]sar -u 5 5
Linux 2.4.21-4.ELsmp (linux1) 01/04/05
18:00:17 CPU %user %nice %system %idle
18:00:22 all 1.50 0.00 0.93 97.57
18:00:27 all 16.02 0.00 4.74 79.24
18:00:32 all 5.69 0.00 3.77 90.53
18:00:37 all 0.79 0.00 1.10 98.11
18:00:42 all 2.69 0.00 1.21 96.10
Average: all 5.15 0.00 2.24 92.61
获得指定 CPU 号(多 CPU 情况下)的使用情况
[root@linux stone]sar -U 0
Linux 2.4.21-4.ELsmp (linux1) 01/04/05
00:00:00 CPU %user %nice %system %idle
00:10:00 0 1.10 0.00 0.83 98.36
00:20:00 0 0.55 0.00 0.78 97.52
00:30:00 0
0.97 0.00 0.77 98.57
00:40:00 0 1.15 0.00 0.93 97.09
00:50:00 0 1.88 0.00 1.33 95.96
01:00:00 0 1.20 0.00 1.11 96.66
01:10:00 0 0.78 0.00 1.26 97.96
01:20:00 0 1.07 0.00 1.04 96.91
01:30:00 0 1.24 0.00 1.01 97.29
可以获得运行用户进程 %user, 内核进程 %system 和空闲状态是 CPU 时间的百分比 .
观察数据,获得结论:
%user 越大一般表明服务器处于运行状态; %system 越大表明服务器处于系统调用
或者 I/O 操作。如果 CPU 有大量时间处于空闲状态( %idle), 那就说明 CPU 足够。
我们还可以获得每个时间段上内核切换当前进程的次数,如果这个数很高,表示服务器
硬件有问题。
[root@linux stone]sar -w
07:50:00 cswch/s
08:00:00 285.49
08:10:00 259.64
08:20:00 387.54
08:30:00 359.15
08:40:00 504.29
08:50:00 762.73
09:00:00 572.93
09:10:01 885.75
09:20:00 1159.97
09:30:00 1101.83
09:40:00 1095.72
09:50:00 1052.89
10:00:00 961.75
10:10:00 861.31
10:20:00 501.76
10:30:00 370.81
10:40:00 736.26
10:50:00 635.93
11:00:00 399.51
11:10:00 873.58
11:20:00 741.14
11:30:00 776.49
11:40:00 641.55
Average:
平均负载:
系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数,一般来说只要每个
CPU
的当
前活动进程数不大于
3
那么系统的性能就是良好的,如果每个
CPU
的任务数大于
5
,那么就表示这
台机器的性能有严重问题
.
[root@linux
stone]uptime
18:07:22
up 10 days,
8:05,
1 user,
load
average: 0.49, 0.31, 1.18
表示在过去的
1
、
5
、
15
分钟内运行队列中的平均进程数量
.
[root@linux
stone]sar -q
07:50:00
runq-sz
plist-sz
ldavg-1
ldavg-5
08:00:00
0
214
0.01
0.08
08:10:00
0
222
0.37
0.21
08:20:00
1
229
0.41
0.42
08:30:00
0
239
0.45
1.10
08:40:00
0
242
0.24
0.36
08:50:00
1
253
1.55
1.98
09:00:00
0
248
0.45
0.55
09:10:01
0
273
8.17
3.85
09:20:00
0
295
0.62
0.99
09:30:00
0
279
0.87
0.79
09:40:00
1
284
0.62
0.68
09:50:00
0
302
0.38
0.51
10:00:00
0
277
0.98
0.79
10:10:00
2
289
0.60
0.55
10:20:00
2
264
0.28
0.33
10:30:00
0
269
0.28
0.31
10:40:00
0
284
0.58
0.46
10:50:00
0
324
1.18
0.62
11:00:00
0
311
0.43
0.31
11:10:00
0
330
0.65
0.54
11:20:00
1
335
0.45
0.45
11:30:00
1
345
0.39
0.47
11:40:00
0
322
0.22
0.36
Average:
0
296
0.65
0.60
runq-sz:
等待运行的进程数
plist-sz
:总的进程数(在
process
list).
ldavg-1 :
系统最后一分钟的平均负载
ldavg-5:
系统最后
5
分钟的平均负载
每个进程的
CPU
消耗量:通过了解具体的某个进程对
CPU
消耗的统计,我们可以确定某一进程是否存在问题,
并进行改善(改善该进程?改善硬件?
....)
可以用
ps -aux
或者
top
来观察某一进程对
CPU
的消耗情况。
另外,
vmstat
工具也可以报告一些
cpu
的情况
.
[root@linux
stone]vmstat
procs
memory
swap
io
system
cpu
r
b
swpd
free
buff
cache
si
so
bi
bo
in
cs us sy id
wa
0
0
92456 141164 102032 2346524
0
0
7
2)
内存情况
你必须对系统内存管理过程进行了解,特别是页的交换等原理。一般用活动虚拟内存的总量和换页率来衡量
内存的使用情况。从活动虚拟内存总量我们可以获得内存的需求量;根据换页率我们可以获得内存有多少处于
使用中。换页率越高,说明内存使用很大(磁盘会咯咯响),这时候应该增加内存。
活动虚拟内存的总量
(VM)=
实际内存大小
(size of real memory)+
使用的交换空间大小
(amount of swap space
used)
[root@linux
stone]sar -r
07:50:00
kbmemfree kbmemused
%memused kbmemshrd
kbbuffers
kbcached kbswpfree kbswpused
%swpused
08:00:00
74532
3536724
97.94
0
90808
2237872
8294676
91172
1.09
08:10:00
93652
3517604
97.41
0
88864
2218328
8294696
91152
1.09
08:20:00
63192
3548064
98.25
0
69988
2269068
8294700
91148
1.09
08:30:00
272344
3338912
92.46
0
22552
2119284
8290536
95312
1.14
08:40:00
126104
3485152
96.51
0
38888
2242808
8290560
95288
1.14
08:50:00
191476
3419780
94.70
0
18528
2246968
8289944
95904
1.14
09:00:00
55304
3555952
98.47
0
32836
2368824
8285288
100560
1.20
09:10:01
201592
3409664
94.42
0
50876
2251528
8285708
100140
1.19
09:20:00
32912
3578344
99.09
0
66316
2410260
8285984
99864
1.19
09:30:00
55232
3556024
98.47
0
45944
2400496
8286072
99776
1.19
09:40:00
51652
3559604
98.57
0
64392
2383592
8286216
99632
1.19
09:50:00
45172
3566084
98.75
0
70144
2388804
8286428
99420
1.19
10:00:00
52068
3559188
98.56
0
64676
2395512
8286564
99284
1.18
10:10:00
51400
3559856
98.58
0
49620
2407528
8286596
99252
1.18
10:20:00
41692
3569564
98.85
0
47684
2424280
8286652
99196
1.18
10:30:00
35200
3576056
99.03
0
50336
2431268
8286656
99192
1.18
10:40:00
21400
3589856
99.41
0
64612
2423780
8286728
99120
1.18
10:50:00
83048
3528208
97.70
0
68084
2331448
8286796
99052
1.18
11:00:00
22072
3589184
99.39
0
70764
2416216
8286816
99032
1.18
11:10:00
34376
3576880
99.05
0
56780
2405008
8286824
99024
1.18
11:20:00
36376
3574880
98.99
0
48756
2397968
8286836
99012
1.18
11:30:00
43808
3567448
98.79
0
49708
2398852
8286924
98924
1.18
11:40:00
34884
3576372
99.03
0
60960
2408756
8286936
98912
1.18
11:50:00
38328
3572928
98.94
0
67080
2407960
8286936
98912
1.18
12:00:00
38932
3572324
98.92
0
72724
2406132
8286940
98908
1.18
12:10:00
109300
3501956
96.97
0
75348
2326492
8286940
98908
1.18
Average:
64548
3546708
98.21
0
96633
2330707
8291911
93937
1.12
[root@linux
stone]swapon -s
Filename
Type
Size
Used
Priority
/dev/sdb8
partition
4192924 98908
-1
/dev/sdb10
partition
4192924 0
-2
通过以上数据,我们可以获得
活动虚拟内存的总量
(VM)=kbmem +
kbswpused=3.54G
3.47G
就是当前服务器需要的内存总量
.
[root@linux
stone]sar -B
07:50:00
pgpgin/s pgpgout/s
activepg
inadtypg
inaclnpg
inatarpg
08:00:00
9.34
139.23
566687
0
13589
142713
08:10:00
25.71
108.40
564261
0
13539
141743
08:20:00
149.36
191.93
573187
0
13399
143335
08:30:00
43.63
234.46
529094
35493
11998
134494
08:40:00
246.68
277.54
565985
25012
9177
141597
08:50:00
381.88
536.92
553537
52107
12381
140623
09:00:00
190.29
307.08
581102
31530
12311
147195
09:10:01
259.69
860.26
560927
60833
13643
142327
09:20:00
487.91
550.73
604302
55059
14379
151157
09:30:00
382.74
710.78
598312
70977
14059
149736
09:40:00
354.97
510.46
598398
70661
13795
149920
09:50:00
280.48
629.94
602880
64397
13864
150517
10:00:00
447.48
659.52
602483
69873
13362
150261
10:10:00
404.97
458.69
603719
68104
13724
150115
10:20:00
310.69
272.95
601711
67460
13898
150651
10:30:00
121.59
184.03
603972
56077
13928
151109
10:40:00
263.55
392.60
605818
60314
17208
151754
10:50:00
210.45
348.91
589640
72762
13761
148093
11:00:00
190.55
199.58
607545
54517
15086
151774
11:10:00
350.40
462.20
603874
75205
14074
150970
11:20:00
374.10
437.94
603769
70937
13904
150877
11:30:00
163.58
381.97
601763
62157
14369
150481
11:40:00
96.75
298.26
605429
45214
14093
151042
11:50:00
127.14
159.75
602817
38423
13911
150789
12:00:00
57.85
186.46
602126
27663
14362
150737
12:10:00
51.41
216.03
585281
32559
13808
146942
12:20:00
95.07
225.01
600874
6573
13793
150148
12:30:00
197.36
162.14
605716
5821
16786
151620
12:40:00
16.31
145.40
604436
0
14285
151002
Average:
100.76
226.88
591604
16947
13867
148584
pgpgin/s:
换入页的
KB
数
pgpgout/s:
换出页的
KB
数
activepg:
内存中活动的页数
inadtypg: Number of inactive dirty
(modified or potentially modified) pages in memory.
inaclnpg: Number of inactive clean
(not modified) pages in memory.
inatarpg: "Inactive
target"
number
of
pages.This
field is a 1-minute floating average of the number of
pages the system needs to "steal" every second in order to satisfy memory
demand.
margin: 0cm 0cm
发表评论
-
一个命令创建多个目录
2013-06-13 12:36 922可能我太土了,才发现下面这个命令! mkdir -p src ... -
use "--links" option of rsync
2013-05-23 10:45 762Today I used rsync to copy some ... -
Makefile tutorial
2013-01-07 14:30 945Old but good. http://www.codep ... -
crontab定期执行命令详解,以及实例
2012-12-18 17:29 960使用时可以参考这个博客: http://blog.51yip ... -
vim tips
2012-07-04 13:59 977I read some articles about vim ... -
cvs不能更新文件的权限
2012-06-28 13:07 1109一个project用到了古老的cvs管理源代码。 一个文件我c ... -
GNU Make Variables: simple and recursive
2012-04-19 14:17 1067今天有时间看了一下teammate写的makefile,学习了 ... -
How do I find the largest top 10 files in linux?
2012-04-06 15:24 1156http://www.cyberciti.biz/faq/ho ... -
xargs usage with multi arguments
2011-11-30 12:24 641http://offbytwo.com/2011/06/26/ ... -
how to explain free buffers and cached memory usage
2011-07-18 11:57 1292free -m tota ... -
Pro Git Tips
2011-07-14 17:53 10841. git init Create a new repo ... -
"error in locking authority file .Xauthority
2011-01-11 11:34 2896今天在windows上vncviewer连linux机器的时候 ... -
raid 0 vs. raid1
2010-12-30 10:20 1389RAID 0 (block-level striping ... -
hwo to configure linux vncserver
2010-12-24 14:10 868http://bobpeers.com/linux/vnc -
set cpu performance mode
2010-11-15 14:38 1903A cheap/dirty little hack to in ... -
Ten Amazing Linux Commands
2010-11-08 22:42 921sudo !! 以 root 帐户执行上一条命令。 ... -
awk code
2010-10-26 17:53 954netstat -n | awk '/^tcp/ {++S ... -
Queue sysfs files
2010-07-28 13:50 1084Based on kernel version 2.6.34. ... -
Install blktrace
2010-07-27 13:15 1454I use libaio-0.3.106.tar.gz and ... -
awk使用实例
2010-02-09 15:47 2094awk使用实例(转载) 2009-08-25 16:41 ...
相关推荐
Linux性能优化和分析是一项至关重要的任务,它涉及到系统的整体健康状态和高效运行。这份PPT主要探讨了如何在Linux环境中识别和解决性能问题,通过理解系统各层面的性能指标,运用适当的工具,以及掌握优化原则,来...
将可以学习以下内容: ·安装和配置linux以便达到最高性能 ·为用户的linux环境评估并选择适当的硬件体系结构 ·理解linux2.4至2.6版本的内核:组件、性能问题以及优化可能性 ·掌握linux性能调整的核心原则和策略...
最后,性能监控和分析工具的使用不可或缺。例如,/proc/meminfo提供实时内存状态,vmstat报告虚拟内存统计,top和htop展示进程资源使用情况,strace追踪系统调用,可以帮助定位内存问题。 综上所述,优化嵌入式...
要想完成出色的完成一个任务,需要多项系统和结构的共同支持,包括:Linux操作系统自身配置、网络拓扑结构、路由设备、接入设备等,只要其中一个环节发生问题,都会影响整个Linux操作系统网络性能。 影响Linux操作...
总的来说,"linux/unix C++ 性能统计代码"是一个用于监控和分析C++程序性能的工具,其简单易用的接口和灵活的适应性使得性能调优变得更加高效。开发者可以通过理解并运用这个工具,提升他们的代码在Linux/Unix环境下...
使用性能分析工具如`gprof`、`strace`和`perf`可以帮助定位性能问题。 6. **进程启动速度**:优化启动速度涉及减少初始化开销,如压缩或延迟加载非关键资源,优化初始化脚本,以及合理配置启动时的内存分配。 7. *...
在嵌入式领域,CPU源代码分析和Linux移植至关重要。嵌入式系统往往资源受限,因此对CPU性能和功耗有严格要求。理解源代码有助于优化性能,而Linux作为开源且功能强大的操作系统,被广泛用于各种嵌入式设备。Linux...
Oracle数据库性能调整与SQL性能优化是数据库管理员和开发人员日常工作中不可或缺的部分。Oracle数据库系统以其高效、稳定和可扩展性闻名,但同时也需要通过精心的调整和优化来确保最佳性能。以下是一些关键的知识点...
基于Linux的颠簸分析与处理 Linux操作系统是当今最具发展潜力的操作系统之一,其稳定性、安全...我们需要了解颠簸的形成机制,掌握避免颠簸的方法,并对系统性能进行监控和分析,以便提供一个高效、稳定的计算机系统。
配置内核时需要遵循几个基本原则,包括小型化、适当功能、完整性和可靠性。小型化意味着要剔除一切不必要的组件,减少内核的总体积;适当功能则要求裁剪时只保留必须的功能,以支持嵌入式系统中的应用程序;而完整性...
- **理解Linux性能指标**:如CPU使用率、内存使用、磁盘I/O速率、网络带宽等,它们是评估系统性能的基础。 2. **监控和压测工具** - **监控工具**:如`top`、`vmstat`、`iostat`、`netstat`用于实时查看系统状态...
### Linux性能监控之CPU知识点详解 #### Linux Kernel调度器(Scheduler) 在Linux系统中,**调度器(scheduler)**是核心组件之一,它负责管理和分配CPU资源给不同的进程和中断。调度器通过设置不同资源的优先级来...
优化基本原则** - **需求分析**:明确性能瓶颈所在。 - **基准测试**:在优化前后进行对比测试。 **5. shell脚本优化** - **Builts-in和applets**:利用shell内置命令或busybox提供的轻量级工具替代外部命令。 -...
性能相关的各个环节• 系统使用和优化的原则• 典型应用对系统资源使用的特点• 常见的性能分析工具介绍• 性能分析及优化的案例系统使用和优化的原则在进行系统性能分析和优化时,遵循一些基本的原则至关重要。...
3. **内存管理**: 调整SGA(系统全局区)和PGA(程序全局区)大小,以优化性能。 八、高可用性与集群 1. **RAC(Real Application Clusters)**: 实现多节点共享数据库,提高系统的可用性和容错性。 2. **Data ...
内存管理在AIX和Linux系统中扮演着至关重要的角色,因为它是系统性能的关键因素。本文主要探讨了这两种操作系统中内存监控的方法以及内核内存管理的基本原理。 AIX系统使用Virtual Memory Manager (VMM) 来处理内存...
**Linux内存管理的基本原则:** 1. **充分利用内存资源**:Linux认为闲置的内存资源是一种浪费,因此会尽可能地利用所有可用内存,包括将其分配给缓冲区(buffer)和缓存(cache),以提高I/O操作效率和计算性能。 2. *...
4. 性能监控和管理工具,便于优化和调整集群性能。 通过Linux集群构建网络服务器,不仅可以提升系统的可用性和性能,还能够降低成本,是现代网络服务架构的重要组成部分。同时,Linux集群技术还涉及负载均衡算法、...
Linux路由表由多个部分组成,主要包括主路由表(main routing table)和额外的虚拟路由表(例如,policy routing或多宿主路由)。每个路由表包含一系列的路由条目,每个条目代表一种特定的路由规则。 1. 路由条目:...