Linux 性能问题

上一篇 / 下一篇  2012-05-20 20:49:26 / 个人分类:Linux学习笔记

 

Linux性能问题

.性能问题综述

Linux操作系统是一个开源产品,也是一个开源软件的实践和应用平台,在这个平台下有无数的开源软件支撑,我们常见的ApacheTomcatMysqlPHP等。开源软件的最大理念是自由、开放,那么Linux作为一个开源平台,最终要实现的是通过这些开源软件的支持,以最低廉的成本,达到应用最优的性能。因此,逃到性能问题,主要实现的是Linux操作系统和应用程序的最佳结合。在应用程序、操作系统、服务器硬件和网络环境等方面,影响性能最大的是应用程序和操作系统

 

.影响Linux性能的因素

 1.CPU

CPU是操作系统稳定运行的根本,CPU的速度与性能很大一部分决定了系统整体的性能,因此CPU数量越多、主频率越高,服务器性能也就相对好。但事实也并非完全如此。

目前大部分CPU在同一时间内只能运行一个线程,超线程的处理器可以在同一时间运行多个线程,因而,可以利用处理器的超线程特性提高系统性能。在Linux系统下,只有运行SMP内核才能支持超线程,但是安装CPU的数量越多,从超线程获得的性能上的提高就越少。另外,Linux内核会把多核的处理器当作多个单独的CPU来识别,例如两颗4核的CPU,在Linux系统下会认到8CPU。但是从性能角度来讲,两颗4核的CPU8颗单核的CPU并不完全等价。根据权威部门得出的测试结论,前者的整体性能要低于后者25%~30%

 2.内核

 内存的大小也是影响Linux性能的一个重要的因素。内存太小,系统进程将被阻塞,应用也将变得缓慢,甚至失去响应;内存太大,会导致资源的浪费。Linux系统采用了物理内存和虚拟内存的概念,虚拟内存虽然可以缓解物理内存的不足,但是占用过的虚拟内存,应用程序的性能将明显下降。要保证应用程序的高性能运行,物理内存一定要保证足够大,但是过大的物理内存,会导致内存资源的浪费,例如在一个32位处理器的Linux操作系统上,超过8GB的物理内存将被浪费掉。因此,要使用更大的内存,建议安装64位的操作系统,同时开启Linux的大内存内核支持。(查看系统是32位还是64命令file /sbin/init)

 3.磁盘I/O宽带

 磁盘的I/O性能直接影响应用程序的性能。在一个有频繁读写的应用中,如果磁盘的I/O性能得不到满足,就会导致应用的停滞。

 4.网络I/O宽带

 

三.系统性能分析工具

1.vmstat命令

VmstatVirtual Memory Statistics(虚拟内存统计)的缩写,很多Linux发行版本都默认安装了此命令工具,利用vmstat命令可以对操作系统的内存信息、进程状态和CPU活动等进行监视,不足之处是无法对某个进程进行深入分析

Vmstat [-v] [-n] [delay [count]]

V:表示打印出版本信息,是可选参数

N:表示在周期性循环输出时,输出的头部信息仅显示一次。

Delay:表示两次输出之间的间隔时间

Count:表示按照”delay”指定的时间间隔统计的次数。默认为1

 

2.iostat命令

IostatI/O statistics的缩写,主要功能是对系统的磁盘I/O操作进行监视。它的输出主要显示磁盘读写操作的统计信息,同时也会给出CPU使用情况。同vmstat一样,iostat也不能对某个进程进行深入分析,仅对系统的整体情况进行分析。Iostat一般都不随系统安装。

 

3.sar命令

Sar命令很强大,是分析系统性能的重要工具之一,通过sar指令,可以全面地获取系统的CPU、运行队列、磁盘I/O、分页(交换区)、内存、CPU中断和网络等性能数据。

 

四.系统性能分析的标准

影响因素

评判标准

糟糕

CPU

User%+sys%<70%

User%+sys%=85%

User%+sys%>=90%

内存

Swap in(si)=0

Per CPU with 10 page/s

More Swap In& Swap Out

磁盘

Iowait%<20%

Iowait %=35%

Iowait %>=50%

 

 

五.Linux下一般的

Ubuntu LinuxWindows系统不同,Ubuntu Linux不会产生无用垃圾文件,但是在升级缓存中,Ubuntu Linux不会自动删除这些文件,今天就来说说这些垃圾文件清理方法。

1
,非常有用的清理命令:

sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove

这三个命令主要清理升级缓存以及无用包的。

2
,清理opera firefox的缓存文件:

ls ~/.opera/cache4
ls ~/.mozilla/firefox/*.default/Cache

3
,清理Linux下孤立的包:

图形界面下我们可以用:gtkorphan
sudo apt-get install gtkorphan -y
终端命令下我们可以用:deborphan
sudo apt-get install deborphan -y

4
,卸载:tracker

这个东西一般我只要安装Ubuntu就会第一删掉tracker他不仅会产生大量的cache文件而且还会影响开机速度。所以在新得利里面删掉就行。

5
,删除多余的内核:一定不要删错哦,切记!!

打开终端敲命令:dpkg -l|grep linux

dpkg –get-selections|grep linux

image的就是内核文件

删除老的内核文件:

sudo apt-get remove
内核文件名(例如:linux-image-2.6.27-2-generic

内核删除,释放空间了,应该能释放130140M空间。

最后不要忘了看看当前内核:uname -a

附录:

包管理的临时文件目录:

包在

/var/cache/apt/archives

没有下载完的在

/var/cache/apt/archives/partial
使用Ubuntu一段时间后,就会发觉由于自动升级,系统里安装了很多内核。像我,竟然安装了下面那么多,这个造成了漫长的启动列表。必须删掉一些不用的。


升级内核

apt-get dist-upgrade

首先就是使用如下命令,列出所有安装的内核,下表中,带有image的就是内核文件。从中选择要卸载的包,用apt-get来卸载

[tc@ibm:~]$ dpkg –get-selections|grep linux
libselinux1                    install
linux-firmware                    install
linux-generic                    install
linux-headers-2.6.31-17                install
linux-headers-2.6.31-17-generic            install
linux-headers-generic                install
linux-image-2.6.28-11-generic            install
linux-image-2.6.28-16-generic            install
linux-image-2.6.31-16-generic            install
linux-image-2.6.31-17-generic            install
linux-image-generic                install
linux-libc-dev                    install
linux-restricted-modules-2.6.28-11-generic    install
linux-restricted-modules-2.6.28-16-generic    install
linux-restricted-modules-common            install
linux-sound-base                install
linuxqq                        install
syslinux                    install
util-linux                    install

另外还要记录一个命令。
uname -a

使用这个命令可以查看当前系统使用的内核。

具体的卸载方法为
sudo apt-get remove linux-image-2.6.28-11-generic

这样就可以实现自动删除内核文件了,还可以释放磁盘空间。


更新menu.list

sudo update-grub

先将menu.list备份,然后改名或删除。这样会自动重建文件。然后将原来的menu.list中需要的东西拷贝到新的menu.list中。

重建时,grub不会将其他系统的引导信息也添加进去。需要的从原来的文件中复制一下就行了

 


TAG:

 

评分:0

我来说两句

Open Toolbar