- 浏览: 598004 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
月光杯:
问题解决了吗?
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 893可能我太土了,才发现下面这个命令! mkdir -p src ... -
use "--links" option of rsync
2013-05-23 10:45 729Today I used rsync to copy some ... -
Makefile tutorial
2013-01-07 14:30 896Old but good. http://www.codep ... -
crontab定期执行命令详解,以及实例
2012-12-18 17:29 921使用时可以参考这个博客: http://blog.51yip ... -
vim tips
2012-07-04 13:59 947I read some articles about vim ... -
cvs不能更新文件的权限
2012-06-28 13:07 1075一个project用到了古老的cvs管理源代码。 一个文件我c ... -
GNU Make Variables: simple and recursive
2012-04-19 14:17 1031今天有时间看了一下teammate写的makefile,学习了 ... -
How do I find the largest top 10 files in linux?
2012-04-06 15:24 1112http://www.cyberciti.biz/faq/ho ... -
xargs usage with multi arguments
2011-11-30 12:24 607http://offbytwo.com/2011/06/26/ ... -
how to explain free buffers and cached memory usage
2011-07-18 11:57 1255free -m tota ... -
Pro Git Tips
2011-07-14 17:53 10401. git init Create a new repo ... -
"error in locking authority file .Xauthority
2011-01-11 11:34 2829今天在windows上vncviewer连linux机器的时候 ... -
raid 0 vs. raid1
2010-12-30 10:20 1347RAID 0 (block-level striping ... -
hwo to configure linux vncserver
2010-12-24 14:10 843http://bobpeers.com/linux/vnc -
set cpu performance mode
2010-11-15 14:38 1851A cheap/dirty little hack to in ... -
Ten Amazing Linux Commands
2010-11-08 22:42 891sudo !! 以 root 帐户执行上一条命令。 ... -
awk code
2010-10-26 17:53 918netstat -n | awk '/^tcp/ {++S ... -
Queue sysfs files
2010-07-28 13:50 1045Based on kernel version 2.6.34. ... -
Install blktrace
2010-07-27 13:15 1423I use libaio-0.3.106.tar.gz and ... -
awk使用实例
2010-02-09 15:47 2059awk使用实例(转载) 2009-08-25 16:41 ...
相关推荐
将可以学习以下内容: ·安装和配置linux以便达到最高性能 ·为用户的linux环境评估并选择适当的硬件体系结构 ·理解linux2.4至2.6版本的内核:组件、性能问题以及优化可能性 ·掌握linux性能调整的核心原则和策略...
15.3.3 DML语句性能调整 15.3.4临时表空间的调整 15.3.5日志文件的调整 15.3.6 UNDO表空间的调整 15.4应用系统 15.4.1应用拆分 15.4.2 SQL执行过程 15.4.3 SQL解析 15.4.4 SQL优化 15.4.5 SQL行源生成 ...
能够调整工资标准和员 工信息,也能够调整其他工资项目,根据需要对教职员工基本信息和工资信息的查询 ,系统应该包括系统用户数据的添加,修改和删除。系统应该具有简单,易用,小巧 ,经典的特色,应该能够对高校...
**②同步机制实现**:基于unique_lock以及condition_variable实现同步和互斥,符合RAII原则;\ **5)简单客户端**:(可以通过浏览器进行服务端访问,也可以通过该客户端实现交互以及非活动连接处理的测试)\ **...
Keras安装和配置指南,提供了详细的Linux和Windows下Keras的安装和配置步骤。 深度学习与Keras:位于导航栏最下方的该模块翻译了来自Keras作者博客keras.io和其他Keras相关 博客的文章,该栏目的文章提供了对深度...
阿尔卑斯Linux上的Docker PHP-FPM 7.4和Nginx 1.18 示例DockerPHP-FPM 7.4和Nginx 1.18设置,建立在。... 遵循KISS原则(保持简单,愚蠢),可以轻松理解和调整图像以适应您的需求 重大更改(26/01/2019)
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
3、数据库物理设计原则 3.1、数据库环境配置原则 操作系统环境: 对于中小型数据库系统,采用linux操作系统比较合适,对于数据库冗余要求负 载均衡能力要求较高的系统,可以采用Oracle9i RAC的集群数据库的方法,...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...
使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用...