Linux 性能问题
上一篇 /
下一篇 2012-05-20 20:49:26
/ 个人分类:Linux学习笔记
Linux性能问题
一.性能问题综述
Linux操作系统是一个开源产品,也是一个开源软件的实践和应用平台,在这个平台下有无数的开源软件支撑,我们常见的Apache、Tomcat、Mysql和PHP等。开源软件的最大理念是自由、开放,那么Linux作为一个开源平台,最终要实现的是通过这些开源软件的支持,以最低廉的成本,达到应用最优的性能。因此,逃到性能问题,主要实现的是Linux操作系统和应用程序的最佳结合。在应用程序、操作系统、服务器硬件和网络环境等方面,影响性能最大的是应用程序和操作系统
二.影响Linux性能的因素
1.CPU
CPU是操作系统稳定运行的根本,CPU的速度与性能很大一部分决定了系统整体的性能,因此CPU数量越多、主频率越高,服务器性能也就相对好。但事实也并非完全如此。
目前大部分CPU在同一时间内只能运行一个线程,超线程的处理器可以在同一时间运行多个线程,因而,可以利用处理器的超线程特性提高系统性能。在Linux系统下,只有运行SMP内核才能支持超线程,但是安装CPU的数量越多,从超线程获得的性能上的提高就越少。另外,Linux内核会把多核的处理器当作多个单独的CPU来识别,例如两颗4核的CPU,在Linux系统下会认到8颗CPU。但是从性能角度来讲,两颗4核的CPU和8颗单核的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命令
Vmstat是Virtual Memory Statistics(虚拟内存统计)的缩写,很多Linux发行版本都默认安装了此命令工具,利用vmstat命令可以对操作系统的内存信息、进程状态和CPU活动等进行监视,不足之处是无法对某个进程进行深入分析
Vmstat [-v] [-n] [delay [count]]
V:表示打印出版本信息,是可选参数
N:表示在周期性循环输出时,输出的头部信息仅显示一次。
Delay:表示两次输出之间的间隔时间
Count:表示按照”delay”指定的时间间隔统计的次数。默认为1
2.iostat命令
Iostat是I/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 Linux与Windows系统不同,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)
内核删除,释放空间了,应该能释放130-140M空间。
最后不要忘了看看当前内核: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: