AIX IOCP 模块怎么python如何安装模块,在哪张OS盘上

博客访问: 5022387
博文数量: 501
注册时间:
认证徽章:
Oracle数据库管理员,Oracle数据库系统构架员;2012年7月出版《构建最高可用Oracle数据库系统:Oracle 11gR2 RAC管理、维护与性能优化》一书;Oracle 10g OCM。
ITPUB论坛APP
ITPUB论坛APP
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Unix
& & 通常我们都是通过CDROM的方式来安装IBM AIX操作系统,但如果服务器没有光驱,或者需要安装多台服务器的时候为了提高工作效率,可以考虑使用这里的方法。这篇文章将详细讨论使用磁盘克隆和U盘安装的方式安装AIX操作系统,这两种方法都需要有已经成功安装的AIX操作系统的支持。
一.磁盘克隆安装操作系统。
1.操作系统环境。
# oslevel -s
# bootlist -m normal -o
hdisk0 pathid=0
ent0 speed=auto duplex=auto bserver=000.000.000.000 client=000.000.000.000 gateway=000.000.000.000
hdisk0 & & & & &00cc1ad4ef095bf0 & & & & & & & & & &rootvg & & & & &active & & &
hdisk1 & & & & &00cc1ad46aff307f & & & & & & & & & &None & & & & & & & & & & & &
2.使用alt_disk_install工具克隆磁盘。
# alt_disk_install -OCB hdisk1
+-----------------------------------------------------------------------------+
ATTENTION: calling new module /usr/sbin/alt_disk_copy. Please see the alt_disk_copy man page
and documentation for more details.
Executing command: {/usr/sbin/alt_disk_copy -O -B -d "hdisk1"}
+-----------------------------------------------------------------------------+
Calling mkszfile to create new /image.data file.
Checking disk sizes.
Creating cloned rootvg volume group and associated logical volumes.
Creating logical volume alt_hd5
Creating logical volume alt_hd6
Creating logical volume alt_hd8
Creating logical volume alt_hd4
Creating logical volume alt_hd2
Creating logical volume alt_hd9var
Creating logical volume alt_hd3
Creating logical volume alt_hd1
Creating logical volume alt_hd10opt
Creating logical volume alt_hd11admin
Creating logical volume alt_livedump
Creating /alt_inst/ file system.
/alt_inst filesystem not converted.
& & & & Small inode extents are already enabled.
Creating /alt_inst/admin file system.
/alt_inst/admin filesystem not converted.
& & & & Small inode extents are already enabled.
Creating /alt_inst/home file system.
/alt_inst/home filesystem not converted.
& & & & Small inode extents are already enabled.
Creating /alt_inst/opt file system.
/alt_inst/opt filesystem not converted.
& & & & Small inode extents are already enabled.
Creating /alt_inst/tmp file system.
/alt_inst/tmp filesystem not converted.
& & & & Small inode extents are already enabled.
Creating /alt_inst/usr file system.
/alt_inst/usr filesystem not converted.
& & & & Small inode extents are already enabled.
Creating /alt_inst/var file system.
/alt_inst/var filesystem not converted.
& & & & Small inode extents are already enabled.
Creating /alt_inst/var/adm/ras/livedump file system.
/alt_inst/var/adm/ras/livedump filesystem not converted.
& & & & Small inode extents are already enabled.
Generating a list of files
for backup and restore into the alternate file system...
Backing-up the rootvg files and restoring them to the&
alternate file system...
Modifying ODM on cloned disk.
Building boot image on cloned disk.
Resetting all device attributes.
NOTE: The first boot from altinst_rootvg will prompt to define the new
system console.
Resetting all device attributes.
NOTE: The first boot from altinst_rootvg will prompt to define the new
system console.
forced unmount of /alt_inst/var/adm/ras/livedump
forced unmount of /alt_inst/var/adm/ras/livedump
forced unmount of /alt_inst/var
forced unmount of /alt_inst/var
forced unmount of /alt_inst/usr
forced unmount of /alt_inst/usr
forced unmount of /alt_inst/tmp
forced unmount of /alt_inst/tmp
forced unmount of /alt_inst/opt
forced unmount of /alt_inst/opt
forced unmount of /alt_inst/home
forced unmount of /alt_inst/home
forced unmount of /alt_inst/admin
forced unmount of /alt_inst/admin
forced unmount of /alt_inst
forced unmount of /alt_inst
Changing logical volume names in volume group descriptor area.
Fixing LV control blocks...
Fixing file system superblocks...
执行这个命令需要bos.alt_disk_install.rte软件包。
alt_disk_install -OCB hdisk1&
& &&这个命令克隆的盘,可以拿到不同硬件配置的服务器上使用,使用它进行引导时,会删除ODM库里的所有信息,根据硬件重新配置所有设备信息,相当于使用克隆盘重新安装新的系统。
alt_disk_install -CB hdisk1&
& &&如果是相同硬件配置的机器,则可以运行这个命令克隆磁盘,保持所有设备信息。
3.查看克隆情况。
hdisk0 & & & & &00cc1ad4ef095bf0 & & & & & & & & & &rootvg & & & & &active & & &
hdisk1 & & & & &00cc1ad46aff307f & & & & & & & & & &altinst_rootvg & & & & & & &
hdisk1对应的卷组名为altinst_rootvg。
# bootlist -o -m normal
hdisk0 pathid=0
ent0 speed=auto duplex=auto bserver=000.000.000.000 client=000.000.000.000 gateway=000.000.000.000
查看引导列表,未发生变化。
4.重启操作系统。
hdisk0 & & & & &00cc1ad4ef095bf0 & & & & & & & & & &rootvg & & & & &active & & &
hdisk1 & & & & &00cc1ad46aff307f & & & & & & & & & &altinst_rootvg & & & & & & &
# bootlist -o -m normal
hdisk0 pathid=0
ent0 speed=auto duplex=auto bserver=000.000.000.000 client=000.000.000.000 gateway=000.000.000.000
卷组名和引导顺序未发生变化。
5.拔掉克隆磁盘。
关闭操作系统,拔掉hdisk1,重启源服务器,查看服务器情况:
hdisk0 & & & & &00cc1ad4ef095bf0 & & & & & & & & & &rootvg & & & & &active & & &
# lsdev -Cc disk
hdisk0 Available 01-08-00 SAS Disk Drive
hdisk1 Defined & 01-08-00 SAS Disk Drive
删除被拔掉的磁盘:
# rmdev -dl hdisk1
hdisk1 deleted
# lsdev -Cc disk
hdisk0 Available 01-08-00 SAS Disk Drive
6.将克隆磁盘移植到新服务器。
& &&将hdisk1插入新服务器,新插入的盘不会自动引导系统的启动,需要在分区启动时进入SMS菜单,手动指定磁盘启动。
1).进入SMS菜单,选择5:
2).选择1:
3).选择7:
4).选择3引导系统:
5).选择2:
6).选择1:
7).选择2:
7.检查系统:
hdisk0 & & & & &00cc1ad46aff307f & & & & & & & & & &rootvg & & & & &active & & &
# lsdev -Cc disk
hdisk0 Available 00-08-00 SAS Disk Drive
# bootlist -o -m normal
ent0 speed=auto duplex=auto bserver=000.000.000.000 client=000.000.000.000 gateway=000.000.000.000
修改引导顺序:
# bosboot -a -d /dev/hdisk0
bosboot: Boot image is
byte blocks.
# bootlist -o -m normal hdisk0
hdisk0 blv=hd5 pathid=0
# bootlist -o -m normal
hdisk0 blv=hd5 pathid=0
自此,分区重启即可自动启动。
二.使用U盘安装操作系统。
使用U盘安装AIX的方法描述:
USB flash disk(U-disk)
& add boot support for USB flash memory device.
& These APAR announced Nov 2008,3 years ago.
& 3 type of U-disk are formally supported:
& -Lenovo USB2.0 Essential Memory Key, part number 41U4944
& -Kingston 4GB DataTraveler, USB2.0
& -SanDisk 4GB Cruzer Micro Flash Drive, USB2.0
& Procedure to create bootable U-Disk
&1)plug U-disk in USB port
&2)make sure below filesets installed.
& &devices.common.IBM.usb.rte
& &devices.usbif..rte
&3)Configure U-disk
& #cfgmgr -vl usb0
& usbms0 Available 2.3
USB Mass Storage
& #lscfg -vl usbms0
& usbms0 U78C0.001.DBJA161-D1-T1-L1 USB Mass Storage
Manufacturer................San
& & & &Machine Type and Model......Cru
& & & &ROM Level.(alterable).......8.01
&4)Copy ISO from DVD
& #dd if=/dev/cd0 of=/images/AIX61.iso bs=4096k
& make sure iso file is in a large file capable file system and has enough space
& #dd if=/images/AIX61.iso of=/dev/usbms0 bs=4096k
& Do not use U-disk with write protection switch.AIX will complain the U-disk
& is write protected no matter it is write protected or not.(Bug)
Procedure to install from U-disk
1)insert U-disk created in Power computer node USB port
2)activate LPAR to SMS
3)Multiboot -> Select Install/Boot Device -> Select harddisk/USB&
下面是实际的操作步骤:
# lslpp -l devices.common.IBM.usb.rte
& Fileset & & & & & & & & & & &Level &State & & &Description & & & &&
& ----------------------------------------------------------------------------
Path: /usr/lib/objrepos
& devices.common.IBM.usb.rte
& & & & & & & & & & & & & & &6.1.7.0 &COMMITTED &USB System Software
Path: /etc/objrepos
& devices.common.IBM.usb.rte
& & & & & & & & & & & & & & &6.1.4.1 &COMMITTED &USB System Software&
# lslpp -l devices.usbif..rte
& Fileset & & & & & & & & & & &Level &State & & &Description & & & &&
& ----------------------------------------------------------------------------
Path: /usr/lib/objrepos
& devices.usbif..rte
& & & & & & & & & & & & & & 6.1.7.19 &COMMITTED &USB Mass Storage Device
& & & & & & & & & & & & & & & & & & & & & & & & &Software
Path: /etc/objrepos
& devices.usbif..rte
& & & & & & & & & & & & & & 6.1.7.19 &COMMITTED &USB Mass Storage Device
& & & & & & & & & & & & & & & & & & & & & & & & &Software
# cfgmgr -vl usb0
----------------
attempting to configure device 'usb0'
Time: 0 LEDS: 0x2563
invoking /etc/methods/cfgusb -l usb0&
Number of running methods: 1
----------------
Completed method for: usb0, Elapsed time = 16
return code = 0
****************** stdout ***********
****************** no stderr ***********
----------------
Time: 16 & & & &LEDS: 0x539
Number of running methods: 0
----------------
attempting to configure device 'usbms0'
Time: 16 & & & &LEDS: 0x25a1
invoking /usr/lib/methods/cfgcdrom_usb -l usbms0&
Number of running methods: 1
----------------
Completed method for: usbms0, Elapsed time = 0
return code = 0
****************** no stdout ***********
****************** no stderr ***********
----------------
Time: 16 & & & &LEDS: 0x539
Number of running methods: 0
----------------
calling savebase
return code = 0
****************** no stdout ***********
****************** no stderr ***********
Configuration time: 16 seconds
# lsdev &| grep usb
usb0 & & & Available & & & & & & USB System Software
usbhc0 & & Available 01-08 & & & USB Host Controller ()
usbhc1 & & Available 01-09 & & & USB Host Controller ()
usbhc2 & & Available 01-0a & & & USB Enhanced Host Controller ()
usbms0 & & Available 2.3 & & & & USB Mass Storage
# lscfg -vl usbms0
& usbms0 & & & & & U789C.001.DQDW860-D1-T1-L1 &USB Mass Storage
& & & & Manufacturer................SMART &&
& & & & Machine Type and Model......SMART USB 8GB &&
& & & & ROM Level.(alterable).......880C
& & & & Serial Number...............880C
# dd if=/dev/cd0 of=/opt/AIX61.iso bs=4096k
946+1 records in.
946+1 records out.
# dd if=/opt/AIX61.iso of=/dev/usbms0 bs=4096k
946+1 records in.
946+1 records out.
在现有AIX操作系统上完成以上步骤之后,将USB盘插入到新服务器或分区,启动分区或服务器,进入SMS菜单:
参考上面的内容选择USB引导启动,选择5:
成功通过USB引导:
之后的步骤跟CDROM安装是相同的。
阅读(16102) | 评论(0) | 转发(2) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。博客分类:
Intel VTune Amplifier XE and VTune Performance Analyzer
http://software.intel.com/en-us/intel-vtune-amplifier-xe-2013-evaluation-options/http://software.intel.com/en-us/intel-vtune-amplifier-xehttp://www.intel.com/cd/software/products/apac/zho/vtune/275878.htm
http://baike.baidu.com/view/1089180.htm
英特尔VTune? 性能分析器英特尔VTune? 性能分析器可通过图形用户界面轻松优化应用性能,而且无需重新编译。它独立于编译器和语言,因此可与 C、C++、Fortran、C#、Java、.NET 等等?一起使用。与只提供调用图分析或一组有限的采样事件的产品不同,VTune 分析器可通过一组丰富的适用于所有最新英特尔? 处理器的调试事件同时实现上述两种功能。开发出在运行 Microsoft Windows Vista*、Windows* XP 或 Windows Server* 的最新 64 位多核系统上运行如飞的软件。无需重新编译,并且只需极低的开销(不到 5%),便可以确定性能瓶颈。使用图形界面与强大的 Visual Studio* 与 .NET 集成功能来分析结果。快速探查源代码,确定存在问题的代码行。优化多核性能内含英特尔线程档案器!对应用进行线程处理后并没有达到您预期的效果?英特尔线程档案器可帮助您调试多线程代码,从而在当今的多核处理器上取得最佳性能。英特尔VTune? 性能分析器 Linux* 版是完全基于 Linux 的解决方案,无论是在单核系统上还是在多核系统上,要使您的软件以最快速度运行,该解决方案都是不可或缺的。无需重新编译,也无需通过超级计算机系统在手持设备上链接,它便能分析应用程序。它功能强大,可处理大型应用程序(源代码超过 1 GB),并支持多核多处理器以及使用最新英特尔处理器的 NuMA 系统。
使用Intel VTune性能分析器分析.NET模块运行时间
http://www.cnblogs.com/daizhj/archive//1374973.html
Intel Vtune Amplifier XE2011-性能优化工具
http://hi.baidu.com/l_rigidity/item/d91dc75d73a5b93a33e0a939
该工具的目的: 该工具用于代码性能优化,找出代码中的瓶颈或热点。简单使用:1.首先通过file-&new -&project 来创建一个project. 输入Project name和location.2.之后会弹出一个配置Project Properties 的对话框,选择需要profile的对象target, 在这里提供了3中Target的类型:a.Launch Application, 在这种target的情况下,在下面的Application中输入你要profile的应用程序,于是在后面开始profile的时候,VTune会启动这个应用程序。b.Attach to Process, 在种target的情况下,在下面的ProcessID中输入进程ID即可,主要针对的是已经启动的后台程序,VTune可以attach to Process对某一个时段的操作进行profile.c.Profile System,
在这种情况下,不需要选择target,直接对系统进程进行profile.这3种情况和VS的debug模式很像。3.在配置完Project Properties之后,就可以选择new Analysis 图标,对这个project选择的target创建新的analysis. 可以针对一个project创建很多次的analysis。4.在创建新的analysis时,需要选择analysis的类型,我只试过HotSpots这类型的分析类型,选择类型之后,就可以点击右边的start按钮开始profile工作了。5.在完成profile时,点击stop按钮,就会结束profile,接着对profile的结构进行分析整理,以图表的形式展现出每个耗时的hotspot。6.于是程序员就可以针对hotspot,进行有针对性的优化。PS:其自带的一个Get Start 帮助文档很有帮助,对于初次使用的人很有帮助。
Intel? VTune? Amplifier XE 2011 功能演示 (中文视频) / Peter Wang (Intel) 于 星期五, 19/11/2010 - 14:25 提交
http://software.intel.com/zh-cn/blogs//intelr-vtunetm-amplifier-xe-2011
全部中文演示,每节5-10分钟,快速掌握产品的使用技巧。
Intel? VTune? Amplifier XE 2011 功能演示1 - 总述 (中文)- /zh-cn/forums/showthread.php
Intel? VTune? Amplifier XE 2011 功能演示2 - 热点分析(中文)- /zh-cn/forums/showthread.php
Intel? VTune? Amplifier XE 2011 功能演示3 - 并行度分析(中文)- /zh-cn/forums/showthread.php
Intel? VTune? Amplifier XE 2011 功能演示4 - 等待和锁(中文)- /zh-cn/forums/showthread.php
Intel? VTune? Amplifier XE 2011 功能演示5 - 处理器的事件 (中文)- /zh-cn/forums/showthread.php
http://blog.163.com/lideren_2008/blog/static//
1.vtune默认安装目录/opt/intel/vtune_amplifier_xe_2011/vi ~/.bashrc
追加如下内容alias amplxe-cl='/opt/intel/vtune_amplifier_xe_2011/bin32/amplxe-cl'alias amplxe-configurator='/opt/intel/vtune_amplifier_xe_2011/bin32/amplxe-configurator'alias amplxe-feedback='/opt/intel/vtune_amplifier_xe_2011/bin32/amplxe-feedback'alias amplxe-gui='/opt/intel/vtune_amplifier_xe_2011/bin32/amplxe-gui'alias amplxe-runsa='/opt/intel/vtune_amplifier_xe_2011/bin32/amplxe-runsa'alias amplxe-runss='/opt/intel/vtune_amplifier_xe_2011/bin32/amplxe-runss'alias crashreport='/opt/intel/vtune_amplifier_xe_2011/bin32/crashreport'alias dicer_transform_helper2='/opt/intel/vtune_amplifier_xe_2011/bin32/dicer_transform_helper2'alias pin='/opt/intel/vtune_amplifier_xe_2011/bin32/pin'alias pinbin='/opt/intel/vtune_amplifier_xe_2011/bin32/pinbin'source ~/.bashrc
使追加变量声明生效2.列出example程序相关模块的热点函数:amplxe-cl -report hotspots -r amplxe-cl -filter module=example Using result path 'amplxe-cl'3.打印example模块上热点函数的性能数据amplxe-cl -report pmu-events -r event_result -group-by function -filter module=example Using result path `event_result'4.打印pid为12345的程序上热点函数的性能数据amplxe-cl -collect hotspots -result-dir hotspots -duration 10 -target-pid 123455.生成并打印热点分析报告amplxe-cl -report hotspots -result-dir hotspots -group-by functionFunction
CPU TimeKSpawnPointList::Active example
0.140KSubWorld::GetWorldTemplateId
0.100KNpc::Activate
0.060_Buff_Env_Param::_Buff_Env_Param
0.030BuffList::Time
0.020KRegion::Activate
0.020KRegion::IsActive
0.020_Buff_Param::_Buff_Param
0.020CUnaryAttr::GetValue
0.010KNode::GetNext
0.010KNpc::GetOffY
0.010KNpc::ReceiveDamage
0.010KSubWorldSet::MainLoop
0.010NpcController::Active
0.010NpcController::GetCurrentTime
0.010Executing actions 99 % done
参考http://software.intel.com/zh-cn/blogs//vtune-amplifier-xe/http://software.intel.com/zh-cn/blogs//amplxe-cl/
Linux性能分析与调整命令汇总
Linux性能监控:CPU、内存、IO.rar
Linux性能监控:CPU、内存、IO.chm
CPU性能分析工具:
Memory性能分析工具:
cat /proc/meminfo
cat /proc/slabinfo
cat /proc/ /maps
I/O性能分析工具:
quotacheck
Network性能分析工具:
iptraf // ftp://metalab.unc.edu/pub/Linux/system/network/monitor/iptraf-2.4.0.tar.gz
cat /proc/sys/net
Linux 性能调优工具
当通过上述工具及命令,我们发现了应用的性能瓶颈以后,我们可以通过以下工具或者命令来进行性能的调整。
CPU性能调优工具:
nice / renic
Memory性能调优工具:
I/O性能调优工具:
boot line:
Network性能调优工具:
CPU性能调整
当一个系统的CPU空闲时间或者等待时间小于5%时,我们就可以认为系统的CPU资源耗尽,我们应该对CPU进行性能调整。
CPU性能调整方法:
编辑/proc/sys/kernel/中的文件,修改内核参数。
#cd /proc/sys/kernel/
# ls /proc/sys/kernel/
acct hotplug panic real-root-dev
cad_pid modprobe panic_on_oops sem
cap-bound msgmax pid_max shmall
core_pattern msgmnb powersave-nap shmmax
core_uses_pid msgmni print-fatal-signals shmmni
ctrl-alt-del ngroups_max printk suid_dumpable
domainname osrelease printk_ratelimit sysrq
exec-shield ostype printk_ratelimit_burst tainted
exec-shield-randomize overflowgid pty threads-max
hostname overflowuid random version
一般可能需要编辑的是pid_max和threads-max,如下:
# sysctl kernel.threads-max
kernel.threads-max = 8192
# sysctl kernel.threads-max=10000
kernel.threads-max = 10000
Memory性能调整
当一个应用系统的内存资源出现下面的情况时,我们认为需要进行Memory性能调整:
页面频繁换进换出;
缺少非活动页。
例如在使用vmstat命令时发现,memory的cache使用率非常低,而swap的si或者so则有比较高的数据值时,应该警惕内存的性能问题。
Memory性能调整方法:
1。关闭非核心的服务进程。
相关的方法请见CPU性能调整部分。
2。修改/proc/sys/vm/下的系统参数。
# ls /proc/sys/vm/
block_dump laptop_mode nr_pdflush_threads
dirty_background_ratio legacy_va_layout overcommit_memory
dirty_expire_centisecs lower_zone_protection overcommit_ratio
dirty_ratio max_map_count page-cluster
dirty_writeback_centisecs min_free_kbytes swappiness
hugetlb_shm_group nr_hugepages vfs_cache_pressure
# sysctl vm.min_free_kbytes
vm.min_free_kbytes = 1024
# sysctl -w vm.min_free_kbytes=2508
vm.min_free_kbytes = 2508
# cat /etc/sysctl.conf
vm.min_free_kbytes=2058
3。配置系统的swap交换分区等于或者2倍于物理内存。
total used free shared buffers cached
Mem: 240 24 742400
-/+ buffers/cache: 140
Swap: 272 1848568
I/O性能调整
系统出现以下情况时,我们认为该系统存在I/O性能问题:
系统等待I/O的时间超过50%;
一个设备的平均队列长度大于5。
我们可以通过诸如vmstat等命令,查看CPU的wa等待时间,以得到系统是否存在I/O性能问题的准确信息。
I/O性能调整方法:
1。修改I/O调度算法。
Linux已知的I/O调试算法有4种:
deadline – Deadline I/O scheduler
as – Anticipatory I/O scheduler
cfq – Complete Fair Queuing scheduler
noop – Noop I/O scheduler
可以编辑/etc/yaboot.conf文件修改参数elevator得到。
# vi /etc/yaboot.conf
image=/vmlinuz-2.6.9-11.EL
label=linux
initrd=/initrd-2.6.9-11.EL.img
root=/dev/VolGroup00/LogVol00
append=”elevator=cfq rhgb quiet”
2。文件系统调整。
对于文件系统的调整,有几个公认的准则:
将I/O负载相对平均的分配到所有可用的磁盘上;
选择合适的文件系统,Linux内核支持reiserfs、ext2、ext3、jfs、xfs等文件系统;
# mkfs -t reiserfs -j /dev/sdc1
文件系统即使在建立后,本身也可以通过命令调优;
tune2fs (ext2/ext3)
reiserfstune (reiserfs)
jfs_tune (jfs)
3。文件系统Mount时可加入选项noatime、nodiratime。
# vi /etc/fstab
/dev/sdb1 /backup reiserfs acl, user_xattr, noatime, nodiratime 1 1
4。调整块设备的READAHEAD,调大RA值。
[root@overflowuid ~]# blockdev –report
RO RA SSZ BSZ StartSec Size Device
rw 256 512 96640 /dev/sdb
rw 256 512 94240 /dev/sdb1
[root@overflowuid ~]# blockdev –setra 2048 /dev/sdb1
[root@overflowuid ~]# blockdev –report
RO RA SSZ BSZ StartSec Size Device
Network性能调整
一个应用系统出现如下情况时,我们认为该系统存在网络性能问题:
网络接口的吞吐量小于期望值;
出现大量的丢包现象;
出现大量的冲突现象。
Network性能调整方法:
Linux命令之Ethtool
http://www.iteye.com/topic/347977
http://chengjunflying.iteye.com/blog/980976
[root@Loadrunner19 ~]# dmesg | grep -i eth0
e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
eth0: no IPv6 routers present
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
eth0: no IPv6 routers present
device eth0 entered promiscuous mode
device eth0 left promiscuous mode
device eth0 entered promiscuous mode
device eth0 left promiscuous mode
device eth0 entered promiscuous mode
device eth0 left promiscuous mode
[root@Loadrunner19 ~]# /sbin/ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes:
10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes:
10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: d
Wake-on: d
Current message level: 0x)
Link detected: yes
描述:Ethtool是用于查询及设置网卡参数的命令。
ethtool ethX
ethtool –h
ethtool –i ethX
ethtool –d ethX
ethtool –r ethX
ethtool –S ethX
ethtool –s ethX [speed 10|100|1000]\
[duplex half|full]\
[autoneg on|off]\
[port tp|aui|bnc|mii]\
[phyad N]\
[xcvr internal|exteral]\
[wol p|u|m|b|a|g|s|d...]\
[sopass xx:yy:zz:aa:bb:cc]\
[msglvl N]
1。调整网卡的参数。
# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Half
Port: Twisted Pair
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: d
Wake-on: d
Current message level: 0×)
Link detected: yes
#ethtool -s eth0 duplex full
#ifconfig eth0 mtu 9000 up
2。增加网络缓冲区和包的队列。
# cat /proc/sys/net/ipv4/tcp_mem
144 393216
# cat /proc/sys/net/core/rmem_default
# cat /proc/sys/net/core/rmem_max
# cat /proc/sys/net/core/wmem_default
# cat /proc/sys/net/core/wmem_max
# cat /proc/sys/net/core/optmem_max
# cat /proc/sys/net/core/netdev_max_backlog
# sysctl net.core.rmem_max
net.core.rmem_max = 131071
# sysctl -w net.core.rmem_max=135168
net.core.rmem_max = 135168
3。调整Webserving。
# sysctl net.ipv4.tcp_tw_reuse
net.ipv4.tcp_tw_reuse = 0
# sysctl -w net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_reuse = 1
# sysctl net.ipv4.tcp_tw_recycle
net.ipv4.tcp_tw_recycle = 0
# sysctl -w net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_tw_recycle = 1
Linux System and Performance Monitoring(总结篇)
http://www.hashei.me/2009/09/linux_system_and_performance_monitoring_summary.html
RedHat Enterprise Linux 3 update 7
Dell 1850 Dual Core Xenon Processors, 2 GB RAM, 75GB 15K Drives
Custom LAMP software stack(译注:Llinux+apache+mysql+php 环境)
1. 首先使用vmstat 查看大致的系统性能情况:
# vmstat 1 10
1,不会是内存不足导致,因为swapping 始终没变化(si 和 so).尽管空闲内存不多(free),但swpd 也没有变化.
2,CPU 方面也没有太大问题,尽管有一些运行队列(procs r),但处理器还始终有50% 多的idle(CPU id).
3,有太多的上下文切换(cs)以及disk block从RAM中被读入(bo).
4,CPU 还有平均20% 的I/O 等待情况.
从以上总结出,这是一个I/O 瓶颈.
2. 然后使用iostat 检查是谁在发出IO 请求:
# iostat -x 1
1,看上去只有/dev/sda3 分区很活跃,其他分区都很空闲.
2,差不多有1200 读IOPS,磁盘本身是支持200 IOPS左右(译注:参考之前的IOPS 计算公式).
3,有超过2秒,实际上没有一个读磁盘(rkb/s).这和在vmstat 看到有大量I/O wait是有关系的.
4,大量的read IOPS(r/s)和在vmstat 中大量的上下文是匹配的.这说明很多读操作都是失败的.
从以上总结出,部分应用程序带来的读请求,已经超出了I/O 子系统可处理的范围.
3. 使用top 来查找系统最活跃的应用程序
# top -d 1
1,占用资源最多的好像就是mysql 进程,其他都处于完全idle 状态.
2,在top(wa) 看到的数值,和在vmstat 看到的wio 数值是有关联的.
从以上总结出,似乎就只有mysql 进程在请求资源,因此可以推论它就是导致问题的关键.
4. 现在已经确定是mysql 在发出读请求,使用strace 来检查它在读请求什么.
# strace -p 14939
1,大量的读操作都在不断寻道中,说明mysql 进程产生的是随机IO.
2,看上去似乎是,某一sql 查询导致读操作.
从以上总结出,所有的读IOPS 都是mysql 进程在执行某些读查询时产生的.
5. 使用mysqladmin 命令,来查找是哪个慢查询导致的.
# ./mysqladmin -pstrongmail processlist
1,MySQL 数据库里,似乎在不断的运行table update查询.
2,基于这个update 查询,数据库是对所有的table 进行索引.
从以上总结出,MySQL里这些update 查询问题,都是在尝试对所有table 进行索引.这些产生的读请求正是导致系统性能下降的原因.
把以上这些性能信息移交给了相关开发人员,用于分析他们的PHP 代码.一个开发人员对代码进行了临时性优化.某个查询如果出错了,也最多到100K记录.数据库本身考虑最多存在4百万记录.最后,这个查询不会再给数据库带来负担了.
References
o Ezlot, Phillip – Optimizing Linux Performance, Prentice Hall, Princeton NJ 2005 ISBN –
o Johnson, Sandra K., Huizenga, Gerrit – Performance Tuning for Linux Servers, IBM Press, Upper Saddle River NJ 2005 ISBN X
o Bovet, Daniel Cesati, Marco – Understanding the Linux Kernel, O’Reilly Media, Sebastoppl CA 2006, ISBN
o Blum, Richard – Network Performance Open Source Toolkit, Wiley, Indianapolis IN 2003, ISBN 0-471-43301-2
o Understanding Virtual Memory in RedHat 4, Neil Horman, 12/05 http://people.redhat.com/nhorman/papers/rhel4_vm.pdf
o IBM, Inside the Linux Scheduler, http://www.ibm.com/developerworks/linux/library/l-scheduler/
o Aas, Josh, Understanding the Linux 2.6.8.1 CPU Scheduler, http://josh.trancesoftware.com/linux/linux_cpu_scheduler.pdf
o Wieers, Dag, Dstat: Versatile Resource Statistics Tool, http://dag.wieers.com/home-made/dstat/
Unix + OS IBM AIX 5L capability optimization nmon
nmon下载地址:
http://www-941.haw.ibm.com/collaboration/wiki/display/Wikiptype/nmon nmon分析工具下载地址:
http://www-941.haw.ibm.com/collaboration/wiki/display/Wikiptype/nmonanalyser
A IBM tool used to collect tons of system information on AIX/Linux.
Download Nmon tool from:
Introduction:
2. GC Analysers
Download GA from:
Introduction:
3. IBM Heap Analyzer
Heap analysis tool for IBM JVM
Download HA tool from:
Introduction:
http://www.ibm.com/developerworks/wikis/display/Wikiptype/nmonanalyser
http://www.51testing.com/?uid-23978-action-viewspace-itemid-134254
http://www.ibm.com/developerworks/cn/aix/library/nmon_analyser/index.html
http://www.ibm.com/developerworks/cn/aix/library/analyze_aix/index.html
nmon 性能:分析 AIX 和 Linux 性能的免费工具
级别: 初级
( ), pSeries Technical Support, IBM
2003 年 11 月 04 日 2006 年 6 月 08 日 更新
这 个免费工具使您能够在一个屏幕上查看大量的信息。尽管 IBM 没有提供对该工具的正式支持,并且您在使用它的时候必须自己承担相应的风险,但是您可以从中获得大量有价值的性能统计信息。如果有一个免费工具可以提供您 所需要的所有信息,那么为什么还要使用五个或六个不同的工具呢?
&!-- --&&!-- --& &!-- --&
用法说明:这个 nmon 工具并未受到正式支持。没有提供或隐含任何保证,并且您无法从 IBM 获取相关的帮助。
nmon 工具运行于:
AIX(R) 4.1.5、4.2.0、4.3.2 和 4.3.3(nmon Version 9a:该版本的功能已经确定,并且不会对其进行进一步的开发。)
AIX 5.1、5.2 和 5.3(nmon Version 10:该版本现在支持 AIX 5.3 和基于 POWER5(TM) 处理器的计算机,并且提供了 SMT 和共享 CPU 微分区的支持。)
pSeries(R) p5 和 OpenPower(TM) 上的 Linux(TM) SUSE SLES 9、Red Hat EL 3 和 4、Debian
Linux SUSE、Red Hat 和许多最新的 x86(32 位模式的 Intel 和 AMD)上的发布版
zSeries(R) 或 mainframe 上的 Linux SUSE 和 Red Hat
nmon 工具大约每六个月更新一次,或者在可用的新的操作系统发布版中对其进行更新。要将您的名字放入到请求更新的电子邮件列表中,请与 Nigel Griffiths 联系。
这个工具可以与
一同使用,后者将加载 nmon 的输出文件并自动地创建大量的图形。
nmon 工具可以为 AIX 和 Linux 性能专家提供监视和分析性能数据的功能,其中包括:
CPU 使用率
内存使用情况
内核统计信息和运行队列信息
磁盘 I/O 速度、传输和读/写比率
文件系统中的可用空间
磁盘适配器
网络 I/O 速度、传输和读/写比率
页面空间和页面速度
CPU 和 AIX 规范
消耗资源最多的进程
IBM HTTP Web 缓存
用户自定义的磁盘组
计算机详细信息和资源
异步 I/O,仅适用于 AIX
工作负载管理器 (WLM),仅适用于 AIX
IBM TotalStorage(R) Enterprise Storage Server(R) (ESS) 磁盘,仅适用于 AIX
网络文件系统 (NFS)
动态 LPAR (DLPAR) 更改,仅适用于面向 AIX 或 Linux 的 pSeries p5 和 OpenPower
还包括一个用来从 nmon 的输出生成图形并创建可以在 Web 站点显示的 .gif 文件的新工具。
有关详细信息,请参阅自述文件。
该工具的作用
nmon 工具可以帮助在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新。这个高效的工具可以工作于任何哑屏幕、telnet 会话、甚至拨号线路。另外,它并不会消耗大量的 CPU 周期,通常低于百分之二。在更新的计算机上,其 CPU 使用率将低于百分之一。
使用哑屏幕,在屏幕上对数据进行显示,并且每隔两秒钟对其进行更新。然而,您可以很容易地将这个时间间隔更改为更长或更短的时间段。如果您拉伸窗口,并在 X Windows、VNC、PuTTY 或类似的窗口中显示这些数据,nmon 工具可以同时输出大量的信息。
nmon 工具还可以将相同的数据捕获到一个文本文件,便于以后对报告进行分析和绘制图形。输出文件采用电子表格的格式 (.csv)。
安装该工具
该工具是一个独立的二进制文件(不同的 AIX 或 Linux 版本中该文件也有所不同),您可以在五秒钟内完成该工具的安装,如果您的输入速度更快的话,也许时间更短。安装过程非常简单:
将 nmonXXX.tar.Z 文件复制到计算机。如果使用 FTP,请记住使用二进制模式。 注意:示例中的 XXX 由实际的版本代替。
要解压该文件,可以运行 uncompress nmonXX.tar.Z 。
要提取该文件,可以运行 tar xvf nmonXX.tar 。
阅读自述文件。
要启动 nmon 工具,输入 nmon 。
如果您是 root 用户,可能需要输入 ./nmon 。
使用 nmon 9 的附加说明,仅适用于 AIX 4
必须是 root 用户,或者通过输入下面的命令允许一般用户读取 /dev/kmem 文件(作为 root 用户):
chmod ugo+r /dev/kmem
如果您需要磁盘统计信息,还可以运行下面的命令(作为 root 用户):
chdev -l sys0 -a iostat=true
如何以交互式的方式运行该工具
要以交互式的方式运行该工具,请阅读该文件前页中的相关提示。然后启动该工具,并使用单键命令来查看您所需要的数据。例如,要获取 CPU 、内存 和磁盘 统计信息,启动 nmon 并输入:
如何在以交互式的方式运行该工具的同时,获取相关的帮助信息
附加帮助信息
要获取附加的帮助信息,可以尝试下列方法:
输入 nmon -? 命令以获取简短的详细信息。
输入 nmon -h 命令以获取完整的详细信息。
阅读自述文件。
如何将数据捕获到文件,便于以后进行分析和绘制图形
运行带 -f 标志的 nmon 命令。有关详细信息,请参阅 nmon -h 。但是作为示例,可以尝试运行下面的 nmon 命令,在 1 小时内以 30 秒的时间间隔捕获数据快照:
nmon -f -s 30 -c 120
nmon -fT -s 30 -c 120
第二行的命令还可以捕获消耗资源最多的进程。这两行命令都将在当前目录中创建输出文件,其名称为:
&hostname&_date_time.nmon
该文件采用逗号分隔值 (CSV) 的格式,并且可以将其直接导入到电子表格中。如果您使用的是 Lotus(R) 1-2-3,那么需要对该文件进行排序。(对于 Excel 版本的
nmon 分析程序,则不需要进行这个操作。)在 AIX 中,请遵循下面的示例:
sort -A mymachine_0.nmon & xxx.csv
关于如何节省时间的说明:
要将 nmon 数据捕获文件加载到电子表格,可以查看电子表格文档中有关加载 CSV 数据文件 (.csv) 的内容。许多电子表格可以接受该数据,作为可加载的文件之一,或者提供完成这项任务的导入函数。许多电子表格具有固定数目的列和行。我建议您最多收集 300 个快照,这样就可以避免碰上这些问题。
当您将数据捕获到一个文件中时,nmon 将断开与Shell 的连接以确保它能够连续运行,即使您在此过程中执行了注销操作。这意味着 nmon 可能出现故障,即使它仍然在后台运行。要查看该进程是否仍在运行,可以输入:
ps ?ef | grep nmon
有关您的特定的操作系统上运行的 nmon 版本的详细信息,请阅读自述文件。
面向 AIX 5 的 nmon Version 10 不再使用 /dev/kmem ,仅使用一些公开的 API。因此,您不需要更改 /dev/kmem 的权限,并且不需要使用 32 位和 64 位版本的 nmon 。
对于 AIX 5.1、5.2 和 5.3,可以使用 nmon 10。
从 ML03 AIX 中开始,不再报告 AIX 5.1 中的 lslpp -Lcq bos.?p 核心转储。另外,在升级到 AIX 5.2 ML5 后,Nigel Griffiths 忽略了 WLM 状态信息,而这些也是 AIX 错误。通过使用 nmon Version 10,可以避免这些问题。
不要使用 Microsoft(R) Windows(R) Telnet 和大于 80 x 25 字符的窗口。许多开发人员使用 VNC 和 PuTTY 来显示来自 Windows 计算机的 nmon ,为什么不使用相同的方法呢!
AIX Version 10 中的 nmon 的新特性
目前还有一个称为 "nmon" 的小型 Shell 脚本,可以用来启动适当的 nmon 版本。将该脚本和 nmon 二进制文件放入到您的 $PATH 中,然后输入:nmon 。该版本目前仅在 32 位模式下进行了编译。所以,它可以运行于 32 位和 64 位硬件。这是为了使它更容易安装和运行。
对于 nmon 10 来说,NFS 是全新的特性。
p = 分区 (Partitions)
该特性是为了共享 CPU 分区信息,这是 p5/AIX5.3 的重要特性。
这是为了支持使用 32 个以上 CPU 的计算机,最多可以根据需要达到 128 个逻辑 CPU。
如果您在 POWER5 上使用 AIX 5.3,并且处于共享 CPU 环境中,那么该特性可以提供关于物理 CPU 使用的详细信息。
S = 子类 (Subclass)
该特性根据要求表示 WLM 的子类。
a = 磁盘适配器 (Disk adapters)
提供磁盘适配器的详细信息,比如它们的完整类型。
r = 资源 (Resources)
其中包括以 MHz 为单位的 CPU 速度。
k = 内核 (Kernel)
提供了一些新的字段。
L = 大型页面 (Large pages)
提供了大型页面的状态信息,适用于追求高性能的用户。
D = 磁盘 (Disk)
提供关于磁盘、磁盘类型大小、可用空间、卷组、适配器等更详细的信息。
n = 网络 (Network)
提供关于网络适配器、MTU 和相关错误的详细信息。
m = 内存 (Memory)
提供内存使用的更详细的信息,如系统(内核)和进程、活动虚拟内存。
这是移除封装的启动选项。
AIX 5 的 nmon 10 的输出示例
是屏幕输出的示例。它显示了 AIX 5 的起始屏幕,以及大量有价值的信息。
图 1. AIX 5 的 nmon 10 的输出示例
说明了关于 CPU(这里是 4 CPU 的 POWER5 计算机,并打开了 SMT)、内存使用、内核内部统计和磁盘统计的详细信息。注意:这个逻辑分区 (LPAR) 占用了一半 CPU 中其授权值的 6 倍。
图 2. CPU 详细信息
显示了网络、NFS 统计信息和日志文件系统使用的详细信息。
图 3. 网络详细信息 在下面的 中显示了 POWER5 共享处理器微分区统计的详细信息。
图 4. LPAR 详细信息
说明了 Linux 版本的 nmon 的详细信息,其中显示了 CPU(这里是 2 CPU 的 POWER5 计算机,并打开了 SMT)、LPAR 统计、内存使用、网络统计、文件系统使用和磁盘统计的详细信息。注意:该 LPAR 的物理 CPU 仅在 SUSE SLES9 Service Pack 1 和 Red Hat EL 4 Update 1 中是可用的。
图 5. nmon 的 Linux 版本
显示了计算机、磁盘统计(详细模式)和主要进程的操作系统详细信息。
图 6. nmon 的 Linux 版本(续)
获取该工具
下面是可用的下载选择:
您可以从 IBM Wiki 的
下载 nmon 及其工具。
有关 nmon 的问题和观点,可查看性能工具论坛
" :了解如何使用这工具生成所需的图形化报告。
阅读 " 以消除 CPU 瓶颈并提高性能。
有关性能方面的附加信息,请查看下列的 IBM 红皮书:
,SG24-01 年 2 月。
,SG24- 年 1 月。
,SG24- 年 8 月。
有关 AIX 开发支持,请访问
。这是面向所有 pSeries AIX 开发的主要资源。
想了解更多内容吗?developerWorks
专区提供了大量的有关 eServer 商标的信息性文章和入门、中级、高级教程。
参与 developerWorks 社区。
Nigel Griffiths 是 IBM eServer pSeries Technical Support Advanced Technology Group 的成员。他是一位性能、规模调整、基准测试和 Oracle RDBMS 方面的专家。nmon 工具设计原本用来为内部使用提供基准测试和性能优化的支持,但应大家的要求分发给了需要帮助的伙伴。您可以通过
与 Nigel 联系。
学会使用Linux性能分析工具
http://blackdot.blog.51cto.com/84/801
  Linux在具有高稳定性、可靠性的同时,具有很好的可伸缩性和扩展性,能够针对不同的应用和硬件环境调整,优化出满足当前应用需要的最佳性能。因此企业在维护Linux系统、进行系统调优时,了解系统性能分析工具是至关重要的。   在Linux下有很多系统性能分析工具,比较常见的有top、free、ps、time、timex、uptime等。下文将介绍几个较为重要的性能分析工具vmstat、iostat和sar及其使用。
  用vmstat监视内存使用情况
  vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。
  vmstat的语法如下:
  vmstat [-V] [-n] [delay [count]]
  其中,-V表示打印出版本信息;-n表示在周期性循环输出时,输出的头部信息仅显示一次;delay是两次输出之间的延迟时间;count是指按照这个时间间隔统计的次数。对于vmstat输出各字段的含义,可运行man vmstat查看。
  用iostat监视I/O子系统情况
   iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出 CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
  iostat的语法如下:
iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval
[ count ] ]
   其中,-c为汇报CPU的使用情况;-d为汇报磁盘的使用情况;-k表示每秒按kilobytes字节显示数据;-t为打印汇报的时间;-v表示打印出 版本信息和用法;-x device指定要统计的设备名称,默认为所有的设备;interval指每次统计间隔的时间;count指按照这个时间间隔统计的次数。
  iostat一般的输出格式如下:
Linux 2.4.18-18smp (builder.linux.com)
Blk_read/s
Blk_wrtn/s
  对于输出中各字段的含义,iostat的帮助中有详细的说明。
  使用sar进行综合分析
  表1 sar参数说明
  选项 功能
  -A 汇总所有的报告
  -a 报告文件读写使用情况
  -B 报告附加的缓存的使用情况
  -b 报告缓存的使用情况
  -c 报告系统调用的使用情况
  -d 报告磁盘的使用情况
  -g 报告串口的使用情况
  -h 报告关于buffer使用的统计数据
  -m 报告IPC消息队列和信号量的使用情况
  -n 报告命名cache的使用情况
  -p 报告调页活动的使用情况
  -q 报告运行队列和交换队列的平均长度
  -R 报告进程的活动情况
  -r 报告没有使用的内存页面和硬盘块
  -u 报告CPU的利用率
  -v 报告进程、i节点、文件和锁表状态
  -w 报告系统交换活动状况
  -y 报告TTY设备活动状况
   sar是System Activity Reporter(系统活动情况报告)的缩写。顾名思义,sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的 特点是可以连续对系统取样,获得大量的取样数据;取样数据和分析的结果都可以存入文件,所需的负载很小。sar是目前Linux上最为全面的系统性能分析 工具之一,可以从14个大方面对系统的活动进行报告,包括文件的读写情况、系统调用的使用情况、串口、CPU效率、内存使用状况、进程活动及IPC有关的 活动等,使用也是较为复杂。
  sar的语法如下:
sar [-option] [-o file] t [n]
  它的含义是每隔t秒取样一次,共取样n次。其中-o file表示取样结果将以二进制形式存入文件file中。
  另一种语法如下:
sar [-option] [-s time] [-e time] [-i sec] [-f file]
   含义是表示从file文件中取出数据,如果没有指定-f file,则从标准数据文件/var/adm/sa/sadd取数据,其中dd表示当前天。另外,-s time表示起始时间;-e time表示停止时间;-i sec表示取样的时间间隔,如果不指定则表示取文件中所有的数据。对于具体的选项参见表1。
  一般它与-q和-u联合使用,以便对每个CPU的使用情况进行分析,比如运行如下命令:
  将输出如下:
Linux 2.4.18-18smp (builder.linux.com)
09时46分16?
09时46分21?
09时46分16?
09时46分21?
  由于sar命令太复杂,只有通过熟练使用才能了解每个选项的含义,对于sar输出中每个字段的含义运行man sar命令可以得到详细的解释。
如何分析linux系统瓶颈
http://hi.baidu.com/xuleit/blog/item/85be35bf919b810.html
性能分析之步骤
1. 首先使用vmstat 查看大致的系统性能情况:
# vmstat 1 10
分析: 1,不会是内存不足导致,因为swapping 始终没变化(si 和 so).尽管空闲内存不多(free),但swpd 也没有变化. 2,CPU 方面也没有太大问题,尽管有一些运行队列(procs r),但处理器还始终有50% 多的idle(CPU id). 3,有太多的上下文切换(cs)以及disk block从RAM中被读入(bo). 4,CPU 还有平均20% 的I/O 等待情况.
结论: 从以上总结出,这是一个I/O 瓶颈.
2. 然后使用iostat 检查是谁在发出IO 请求:
# iostat -x 1
分析: 1,看上去只有/dev/sda3 分区很活跃,其他分区都很空闲. 2,差不多有1200 读IOPS,磁盘本身是支持200 IOPS左右(译注:参考之前的IOPS 计算公式). 3,有超过2秒,实际上没有一个读磁盘(rkb/s).这和在vmstat 看到有大量I/O wait是有关系的. 4,大量的read IOPS(r/s)和在vmstat 中大量的上下文是匹配的.这说明很多读操作都是失败的.
结论: 从以上总结出,部分应用程序带来的读请求,已经超出了I/O 子系统可处理的范围.
3. 使用top 来查找系统最活跃的应用程序
# top -d 1
分析: 1,占用资源最多的好像就是mysql 进程,其他都处于完全idle 状态. 2,在top(wa) 看到的数值,和在vmstat 看到的wio 数值是有关联的.
结论: 从以上总结出,似乎就只有mysql 进程在请求资源,因此可以推论它就是导致问题的关键.
4. 现在已经确定是mysql 在发出读请求,使用strace 来检查它在读请求什么.
# strace -p 14939
分析: 1,大量的读操作都在不断寻道中,说明mysql 进程产生的是随机IO. 2,看上去似乎是,某一sql 查询导致读操作.
结论: 从以上总结出,所有的读IOPS 都是mysql 进程在执行某些读查询时产生的.
5. 使用mysqladmin 命令,来查找是哪个慢查询导致的.
# ./mysqladmin -pstrongmail processlist
分析: 1,MySQL 数据库里,似乎在不断的运行table update查询. 2,基于这个update 查询,数据库是对所有的table 进行索引.
结论: 从以上总结出,MySQL里这些update 查询问题,都是在尝试对所有table 进行索引.这些产生的读请求正是导致系统性能下降的原因.
把以上这些性能信息移交给了相关开发人员,用于分析他们的PHP 代码.一个开发人员对代码进行了临时性优化.某个查询如果出错了,也最多到100K记录.数据库本身考虑最多存在4百万记录.最后,这个查询不会再给数据库带来负担了.
References o Ezlot, Phillip – Optimizing Linux Performance, Prentice Hall, Princeton NJ 2005 ISBN –
o Johnson, Sandra K., Huizenga, Gerrit – Performance Tuning for Linux Servers, IBM Press, Upper Saddle River NJ 2005 ISBN X o Bovet, Daniel Cesati, Marco – Understanding the Linux Kernel, O’Reilly Media, Sebastoppl CA 2006, ISBN
o Blum, Richard – Network Performance Open Source Toolkit, Wiley, Indianapolis IN 2003, ISBN 0-471-43301-2 o Understanding Virtual Memory in RedHat 4, Neil Horman, 12/05 http://people.redhat.com/nhorman/papers/rhel4_vm.pdf o IBM, Inside the Linux Scheduler, http://www.ibm.com/developerworks/linux/library/l-scheduler/ o Aas, Josh, Understanding the Linux 2.6.8.1 CPU Scheduler, http://josh.trancesoftware.com/linux/linux_cpu_scheduler.pdf o Wieers, Dag, Dstat: Versatile Resource Statistics Tool, http://dag.wieers.com/home-made/dstat/
Linux性能分析与调整命令汇总
Linux几个性能监控命令行工具
linux htop、 、iftop
http://www.wisfern.com/.html
CPU性能分析工具:
CPU性能调优工具:
nice / renic
http://rainbird.blog.51cto.com/310 c 显示完整的命令行 u 查找指定用户进程 k 杀死指定pid进程 r 改变优先级 l 切换显示平均负载和启动时间信息。 m 切换显示内存信息。 t 切换显示进程和CPU状态信息。 c 切换显示命令名称和完整命令行。 M 根据驻留内存大小进行排序。 P 根据CPU使用百分比大小进行排序。 T 根据时间/累计时间进行排序。
Linux的load average的含义
http://www.51testing.com/?uid-116228-action-viewspace-itemid-131213
[root@b2cbbs opt]# uptime
19:06:26 up 65 days, 58 min,
load average: 0.44, 0.44, 0.45[root@b2cbbs opt]# top
top - 19:06:29 up 65 days, 58 min,
load average: 0.40, 0.43, 0.45
上面的输出,load average后面分别是1分钟、5分钟、15分钟的负载情况。
数据是每隔5秒钟检查一次活跃的进程数,然后根据这个数值算出来的。
如果这个数除以CPU的数目,结果高于5的时候就表明系统在超负荷运转了。
其算法(摘自 2.4的内核代码)如下: 文件: include/linux/sched.h:
文件: kernel/timer.c:
文件: fs/proc/proc_misc.c:
CPU利用率和Load Average的区别
http://www.51testing.com/?uid-116228-action-viewspace-itemid-131214
压 力测试不仅需要对业务场景的并发用户等压力参数作模拟,同时也需要在压力测试过程中随时关注机器的性能情况,来确保压力测试的有效性。当服务器长期处于一 种超负荷的情况下运行,所能接收的压力并不是我们所认为的可接受的压力。就好比项目经理在给一个人估工作量的时候,每天都让这个人工作 12个小时,那么所制定的项目计划就不是一个合理的计划,那个人迟早会垮掉,而影响整体的项目进度。
CPU利用率在过去常常被我们这些外行认为是判断机器是否已经到了满负荷的一个标准,看到 50%-60%的使用率就认为机器就已经压到了临界了。 CPU利用率,顾名思义就是对于 CPU的使用状况,这是对一个时间段内 CPU使用状况的统计,通过这个指标可以看出在某一个时间段内 CPU被占用的情况,如果被占用时间很高,那么就需要考虑 CPU是否已经处于超负荷运作,长期超负荷运作对于机器本身来说是一种损害,因此必须将 CPU的利用率控制在一定的比例下,以保证机器的正常运作。
Load Average是 CPU的 Load,它所包含的信息不是 CPU的使用率状况,而是在一段时间内 CPU正在处理以及等待 CPU处理的进程数之和的统计信息,也就是 CPU使用队列的长度的统计信息。为什么要统计这个信息,这个信息的对于压力测试的影响究竟是怎么样的,那就通过一个类比来解释 CPU利用率和 Load Average的区别以及对于压力测试的指导意义。
我们将 CPU就类比为电话亭,每一个进程都是一个需要打电话的人。现在一共有 4个电话亭(就好比我们的机器有 4核),有 10个人需要打电话。现在使用电话的规则是管理员会按照顺序给每一个人轮流分配 1分钟的使用电话时间,如果使用者在 1分钟内使用完毕,那么可以立刻将电话使用权返还给管理员,如果到了 1分钟电话使用者还没有使用完毕,那么需要重新排队,等待再次分配使用。
补充几点:
1.对于 CPU利用率和 CPU Load Average的结果来判断性能问题。首先低 CPU利用率不表明 CPU不是瓶颈,竞争 CPU的队列长期保持较长也是 CPU超负荷的一种表现。对于应用来说可能会去花时间在 I/O,Socket等方面,那么可以考虑是否后这些硬件的速度影响了整体的效率。
这里最好的样板范例就是我在测试中发现的一个现象: SIP当前在处理过程中,为了提高处理效率,将控制策略以及计数信息都放置在 Memcached Cache里面,当我将 Memcached Cache配置扩容一倍以后, CPU的利用率以及 Load都有所下降,其实也就是在处理任务的过程中,等待 Socket的返回对于 CPU的竞争也产生了影响。
2.未来多 CPU编程的重要性。现在服务器的 CPU都是多 CPU了,我们的服务器处理能力已经不再按照摩尔定律来发展。就我上面提到的电话亭场景来看,对于三种不同时间需求的用户来说,采用不同的分配顺序,我们可看到的 Load Average就会有不同。假设我们统计 Load的时间段为 2分钟,如果将电话分配的顺序按照: 1min的用户, 2min的用户, 3min的用户来分配,那么我们的 Load Average将会最低,采用其他顺序将会有不同的结果。所以未来的多 CPU编程可以更好的提高 CPU的利用率,让程序跑的更快。
以上所提到的内容未必都是很准确或者正确,如果有任何的偏差也请大家指出,可以纠正一些不清楚的概念。
理解 Linux 的处理器负载均值
http://jayjayjays.iteye.com/blog/621050
Memory性能分析工具:
cat /proc/meminfo
cat /proc/slabinfo
cat /proc/ /maps
RHEL Server 5如何扩大tmpfs文件系统?
http://bbs.chinaunix.net/viewthread.php?tid=2105252
[root@appstage ~]# mount tmpfs /dev/shm -t tmpfs -o size=2g
Memory性能调优工具:
I/O性能分析工具:
quotacheck
Network性能分析工具:
使用iptraf查看TCP/UDP某个特定端口的带宽与流量 http://www.ha97.com/4806.html
http://www.redhat.com/search?q=iptraf&search_submit=&lr=lang_en&sitesearch=www.redhat.com&hl=en&site=redhat&btnG=Search&client=external&output=xml_no_dtd&proxyreload=1&exclude_apps=1&rwhost=true&ie=utf8&oe=utf8
ftp://metalab.unc.edu/pub/Linux/system/network/monitor/iptraf-2.3.1.tar.gz
ftp://metalab.unc.edu/pub/Linux/system/network/monitor/iptraf-2.4.0.tar.gz
cat /proc/sys/net
Network性能调优工具:
分析 工具:
I/O性能调优工具:
boot line:
CPU性能调整
当一个系统的CPU空闲时间或者等待时间小于5%时,我们就可以认为系统的CPU资源耗尽,我们应该对CPU进行性能调整。
CPU性能调整方法:
编辑/proc/sys/kernel/中的文件,修改内核参数。
#cd /proc/sys/kernel/
# ls /proc/sys/kernel/
acct hotplug panic real-root-dev
cad_pid modprobe panic_on_oops sem
cap-bound msgmax pid_max shmall
core_pattern msgmnb powersave-nap shmmax
core_uses_pid msgmni print-fatal-signals shmmni
ctrl-alt-del ngroups_max printk suid_dumpable
domainname osrelease printk_ratelimit sysrq
exec-shield ostype printk_ratelimit_burst tainted
exec-shield-randomize overflowgid pty threads-max
hostname overflowuid random version
一般可能需要编辑的是pid_max和threads-max,如下:
# sysctl kernel.threads-max
kernel.threads-max = 8192
# sysctl kernel.threads-max=10000
kernel.threads-max = 10000
Memory性能调整
当一个应用系统的内存资源出现下面的情况时,我们认为需要进行Memory性能调整:
页面频繁换进换出;
缺少非活动页。
例如在使用vmstat命令时发现,memory的cache使用率非常低,而swap的si或者so则有比较高的数据值时,应该警惕内存的性能问题。
Memory性能调整方法:
1。关闭非核心的服务进程。
相关的方法请见CPU性能调整部分。
2。修改/proc/sys/vm/下的系统参数。
# ls /proc/sys/vm/
block_dump laptop_mode nr_pdflush_threads
dirty_background_ratio legacy_va_layout overcommit_memory
dirty_expire_centisecs lower_zone_protection overcommit_ratio
dirty_ratio max_map_count page-cluster
dirty_writeback_centisecs min_free_kbytes swappiness
hugetlb_shm_group nr_hugepages vfs_cache_pressure
# sysctl vm.min_free_kbytes
vm.min_free_kbytes = 1024
# sysctl -w vm.min_free_kbytes=2508
vm.min_free_kbytes = 2508
# cat /etc/sysctl.conf
vm.min_free_kbytes=2058
linux sysctl.conf中相关重要设定的详细说明
http://www.jiunile.com/linux-sysctl-conf%e4%b8%ad%e7%9b%b8%e5%85%b3%e9%87%8d%e8%a6%81%e8%ae%be%e5%ae%9a%e7%9a%84%e8%af%a6%e7%bb%86%e8%af%b4%e6%98%8e.html
3。配置系统的swap交换分区等于或者2倍于物理内存。
total used free shared buffers cached
Mem: 240 24 742400
-/+ buffers/cache: 140
Swap: 272 1848568
I/O性能调整
系统出现以下情况时,我们认为该系统存在I/O性能问题:
系统等待I/O的时间超过50%;
一个设备的平均队列长度大于5。
我们可以通过诸如vmstat等命令,查看CPU的wa等待时间,以得到系统是否存在I/O性能问题的准确信息。
I/O性能调整方法:
1。修改I/O调度算法。
Linux已知的I/O调试算法有4种:
deadline – Deadline I/O scheduler
as – Anticipatory I/O scheduler
cfq – Complete Fair Queuing scheduler
noop – Noop I/O scheduler
可以编辑/etc/yaboot.conf文件修改参数elevator得到。
# vi /etc/yaboot.conf
image=/vmlinuz-2.6.9-11.EL
label=linux
initrd=/initrd-2.6.9-11.EL.img
root=/dev/VolGroup00/LogVol00
append=”elevator=cfq rhgb quiet”
2。文件系统调整。
对于文件系统的调整,有几个公认的准则:
将I/O负载相对平均的分配到所有可用的磁盘上;
选择合适的文件系统,Linux内核支持reiserfs、ext2、ext3、jfs、xfs等文件系统;
# mkfs -t reiserfs -j /dev/sdc1
文件系统即使在建立后,本身也可以通过命令调优;
tune2fs (ext2/ext3)
reiserfstune (reiserfs)
jfs_tune (jfs)
3。文件系统Mount时可加入选项noatime、nodiratime。
# vi /etc/fstab
/dev/sdb1 /backup reiserfs acl, user_xattr, noatime, nodiratime 1 1
4。调整块设备的READAHEAD,调大RA值。
[root@overflowuid ~]# blockdev –report
RO RA SSZ BSZ StartSec Size Device
rw 256 512 96640 /dev/sdb
rw 256 512 94240 /dev/sdb1
[root@overflowuid ~]# blockdev –setra 2048 /dev/sdb1
[root@overflowuid ~]# blockdev –report
RO RA SSZ BSZ StartSec Size Device
Network性能调整
一个应用系统出现如下情况时,我们认为该系统存在网络性能问题:
网络接口的吞吐量小于期望值;
出现大量的丢包现象;
出现大量的冲突现象。
Network性能调整方法:
1。调整网卡的参数。
# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Half
Port: Twisted Pair
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: d
Wake-on: d
Current message level: 0×)
Link detected: yes
#ethtool -s eth0 duplex full
#ifconfig eth0 mtu 9000 up
2。增加网络缓冲区和包的队列。
# cat /proc/sys/net/ipv4/tcp_mem
144 393216
# cat /proc/sys/net/core/rmem_default
# cat /proc/sys/net/core/rmem_max
# cat /proc/sys/net/core/wmem_default
# cat /proc/sys/net/core/wmem_max
# cat /proc/sys/net/core/optmem_max
# cat /proc/sys/net/core/netdev_max_backlog
# sysctl net.core.rmem_max
net.core.rmem_max = 131071
# sysctl -w net.core.rmem_max=135168
net.core.rmem_max = 135168
3。调整Webserving。
# sysctl net.ipv4.tcp_tw_reuse
net.ipv4.tcp_tw_reuse = 0
# sysctl -w net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_reuse = 1
# sysctl net.ipv4.tcp_tw_recycle
net.ipv4.tcp_tw_recycle = 0
# sysctl -w net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_tw_recycle = 1
linux sysctl.conf中相关重要设定的详细说明
http://www.jiunile.com/linux-sysctl-conf%e4%b8%ad%e7%9b%b8%e5%85%b3%e9%87%8d%e8%a6%81%e8%ae%be%e5%ae%9a%e7%9a%84%e8%af%a6%e7%bb%86%e8%af%b4%e6%98%8e.html
$ /proc/sys/net/core/wmem_max 最大socket写buffer,可参考的优化值:873200 $ /proc/sys/net/core/rmem_max 最大socket读buffer,可参考的优化值:873200 $ /proc/sys/net/ipv4/tcp_wmem TCP写buffer,可参考的优化值:
873200 $ /proc/sys/net/ipv4/tcp_rmem TCP读buffer,可参考的优化值:
873200 $ /proc/sys/net/ipv4/tcp_mem 同样有3个值,意思是: net.ipv4.tcp_mem[0]:低于此值,TCP没有内存压力. net.ipv4.tcp_mem[1]:在此值下,进入内存压力阶段. net.ipv4.tcp_mem[2]:高于此值,TCP拒绝分配socket. 上述内存单位是页,而不是字节.可参考的优化值是: $ /proc/sys/net/core/netdev_max_backlog 进入包的最大设备队列.默认是300,对重负载服务器而言,该值太低,可调整到1000. $ /proc/sys/net/core/somaxconn listen()的默认参数,挂起请求的最大数量.默认是128.对繁忙的服务器,增加该值有助于网络性能.可调整到256. $ /proc/sys/net/core/optmem_max socket buffer的最大初始化值,默认10K. $ /proc/sys/net/ipv4/tcp_max_syn_backlog 进入SYN包的最大请求队列.默认1024.对重负载服务器,增加该值显然有好处.可调整到2048. $ /proc/sys/net/ipv4/tcp_retries2 TCP失败重传次数,默认值15,意味着重传15次才彻底放弃.可减少到5,以尽早释放内核资源. $ /proc/sys/net/ipv4/tcp_keepalive_time $ /proc/sys/net/ipv4/tcp_keepalive_intvl $ /proc/sys/net/ipv4/tcp_keepalive_probes 这3个参数与TCP KeepAlive有关.默认值是: tcp_keepalive_time = 7200 seconds (2 hours) tcp_keepalive_probes = 9 tcp_keepalive_intvl = 75 seconds 意思是如果某个TCP连接在idle 2个小时后,内核才发起probe.如果probe 9次(每次75秒)不成功,内核才彻底放弃,认为该连接已失效.对服务器而言,显然上述值太大. 可调整到: /proc/sys/net/ipv4/tcp_keepalive_time 1800 /proc/sys/net/ipv4/tcp_keepalive_intvl 30 /proc/sys/net/ipv4/tcp_keepalive_probes 3 $ proc/sys/net/ipv4/ip_local_port_range 指定端口范围的一个配置,默认是,已够大. net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭; net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭; net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。 net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。 net.ipv4.tcp_keepalive_time = 1200 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。 net.ipv4.ip_local_port_range =
表示用于向外连接的端口范围。缺省情况下很小:3,改为。 net.ipv4.tcp_max_syn_backlog = 8192 表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。 net.ipv4.tcp_max_tw_buckets = 5000 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改 为 5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参数 可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。
Ext4,Ext3的特点和区别
http://zxboom.iteye.com/blog/383986
Linux kernel 自 2.6.28 开始正式支持新的文件系统 Ext4。 Ext4 是 Ext3 的改进版,修改了 Ext3 中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只是增加了一个日志功能而已。Ext4 可以提供更佳的性能和可靠性,还有更为丰富的功能:1. 与 Ext3 兼容。 执行若干条命令,就能从 Ext3 在线迁移到 Ext4,而无须重新格式化磁盘或重新安装系统。原有 Ext3 数据结构照样保留,Ext4 作用于新数据,当然,整个文件系统因此也就获得了 Ext4 所支持的更大容量。2. 更大的文件系统和更大的文件。 较之 Ext3 目前所支持的最大 16TB 文件系统和最大 2TB 文件,Ext4 分别支持 1EB(1,048,576TB, 1EB=1024PB, 1PB=1024TB)的文件系统,以及 16TB 的文件。3. 无限数量的子目录。 Ext3 目前只支持 32,000 个子目录,而 Ext4 支持无限数量的子目录。4. Extents。 Ext3 采用间接块映射,当操作大文件时,效率极其低下。比如一个 100MB 大小的文件,在 Ext3 中要建立 25,600 个数据块(每个数据块大小为 4KB)的映射表。而 Ext4 引入了现代文件系统中流行的 extents 概念,每个 extent 为一组连续的数据块,上述文件则表示为“该文件数据保存在接下来的 25,600 个数据块中”,提高了不少效率。5. 多块分配。 当 写入数据到 Ext3 文件系统中时,Ext3 的数据块分配器每次只能分配一个 4KB 的块,写一个 100MB 文件就要调用 25,600 次数据块分配器,而 Ext4 的多块分配器“multiblock allocator”(mballoc) 支持一次调用分配多个数据块。6. 延迟分配。 Ext3 的数据块分配策略是尽快分配,而 Ext4 和其它现代文件操作系统的策略是尽可能地延迟分配,直到文件在 cache 中写完才开始分配数据块并写入磁盘,这样就能优化整个文件的数据块分配,与前两种特性搭配起来可以显著提升性能。7. 快速 fsck。 以前执行 fsck 第一步就会很慢,因为它要检查所有的 inode,现在 Ext4 给每个组的 inode 表中都添加了一份未使用 inode 的列表,今后 fsck Ext4 文件系统就可以跳过它们而只去检查那些在用的 inode 了。8. 日志校验。 日志是最常用的部分,也极易导致磁盘硬件故障,而从损坏的日志中恢复数据会导致更多的数据损坏。Ext4 的日志校验功能可以很方便地判断日志数据是否损坏,而且它将 Ext3 的两阶段日志机制合并成一个阶段,在增加安全性的同时提高了性能。9. “无日志”(No Journaling)模式。 日志总归有一些开销,Ext4 允许关闭日志,以便某些有特殊需求的用户可以借此提升性能。10. 在线碎片整理。 尽管延迟分配、多块分配和 extents 能有效减少文件系统碎片,但碎片还是不可避免会产生。Ext4 支持在线碎片整理,并将提供 e4defrag 工具进行个别文件或整个文件系统的碎片整理。11. inode 相关特性。 Ext4 支持更大的 inode,较之 Ext3 默认的 inode 大小 128 字节,Ext4 为了在 inode 中容纳更多的扩展属性(如纳秒时间戳或 inode 版本),默认 inode 大小为 256 字节。Ext4 还支持快速扩展属性(fast extended attributes)和 inode 保留(inodes reservation)。12. 持久预分配(Persistent preallocation)。 P2P 软件为了保证下载文件有足够的空间存放,常常会预先创建一个与所下载文件大小相同的空文件,以免未来的数小时或数天之内磁盘空间不足导致下载失败。 Ext4 在文件系统层面实现了持久预分配并提供相应的 API(libc 中的 posix_fallocate()),比应用软件自己实现更有效率。13. 默认启用 barrier。 磁 盘上配有内部缓存,以便重新调整批量数据的写操作顺序,优化写入性能,因此文件系统必须在日志数据写入磁盘之后才能写 commit 记录,若 commit 记录写入在先,而日志有可能损坏,那么就会影响数据完整性。Ext4 默认启用 barrier,只有当 barrier 之前的数据全部写入磁盘,才能写 barrier 之后的数据。(可通过 "mount -o barrier=0" 命令禁用该特性。) Ext4 随 Linux kernel 2.6.28 正式发布已有数周,一直苦于找不到测试用的磁盘,正巧年前 Intel 送来几块 SSD 测试样品,这两天就顺带把 SSD 也测了。测试所使用的 Linux 内核版本为 2.6.28.2,测试工具为 IOzone 3.318。 测试命令为:
time /opt/iozone/bin/iozone -a -s 4G -q 256 -y 4 &|/root/ext4-iozone-stdout.txt
上述命令的说明如下:
Auto Mode File size set to 4194304 KB Using Maximum Record Size 256 KB Using Minimum Record Size 4 KB Command line used: /opt/iozone/bin/iozone -a -s 4G -q 256 -y 4 Output is in Kbytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 Kbytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size.
测试结果除了表明 Intel SSD 的读写速度快得令人咋舌之外,还可以说明 Ext4 的各方面性能都超过了上一代 Ext3,甚至在大多数情况下,比没有日志功能的 Ext2 还要快出不少:
&!-- TABLE,THEAD,TBODY,TFOOT,TR,TH,TD { font-family:"Arial"; font-size:x-small } --&
random read
random write
record rewrite
stride read
Ext2 real 28m12.718s user 0m10.725s sys 5m8.265s
Ext3 real 27m42.449s user 0m11.529s sys 7m17.049s
Ext4 real 27m3.485s user 0m10.847s sys 6m9.578s
文件系统 新特性
http://kernelnewbies.org/Ext4
http://jackyrong.iteye.com/blog/734107
http://linux.chinaunix.net/bbs/thread--1.html
Ext4 is part of the
kernel, read the previous link to know more details about that release.
Linux network monitor iptraf
http://www.ha97.com/4806.html
使用iptraf查看TCP/UDP某个特定端口的带宽与流量 http://www.ha97.com/4806.html
http://www.redhat.com/search?q=iptraf&search_submit=&lr=lang_en&sitesearch=www.redhat.com&hl=en&site=redhat&btnG=Search&client=external&output=xml_no_dtd&proxyreload=1&exclude_apps=1&rwhost=true&ie=utf8&oe=utf8
PS:今天有个做开发的哥们问我怎么查看某个端口的流量,我之前还真很少查看某个端口的流量,都习惯查看某个网卡的流量。不过想了一下,这个肯定是可以的。马上想起我经常使用的工具,折腾了几分钟,方法如下,很简单:
1、终端里打开iptraf(没安装的自己安装,官方源有),选择
—— Additional ports,然后输入端口范围,如果查看22,就输入22 —— 22,之后退出iptraf,如图所示:
2、重新打开iptraf,选择 Statistical breakdowns —— By TCP/UDP port —— eth0,这样就可以查看eth0网卡的某个指定端口的带宽占用和流量了。如图所示:
: http://www.ha97.com/4806.html
(294.3 KB)
下载次数: 3
下载次数: 0
(742.2 KB)
下载次数: 0
(241.6 KB)
下载次数: 0
siemens800
浏览: 1191309 次
来自: 南京
有没有linux 64位的相关librfccm.so等包啊?
非常不错,多谢了。。
写了这么多
ed2k://|file|LoadRunner.V8.1.is ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 windows模块安装程序 的文章

 

随机推荐