1.查看pȝSwapI间使用
[root@jumper usr]# free
total used free shared buffers cached
Mem: 513980 493640 20340 0 143808 271780
-/+ buffers/cache: 78052 435928
Swap: 1052248 21256 1030992
2.在空间合适处创徏swap文g
[root@jumper usr]# mkdir swap
[root@jumper usr]# cd swap
[root@jumper swap]# dd if=/dev/zero of=swapfile bs=1024 count=10000
10000+0 records in
10000+0 records out
[root@jumper swap]# ls -al
total 10024
drwxr-xr-x 2 root root 4096 7?28 14:58 .
drwxr-xr-x 19 root root 4096 7?28 14:57 ..
-rw-r--r-- 1 root root 10240000 7?28 14:58 swapfile
[root@jumper swap]# mkswap swapfile
Setting up swapspace version 1, size = 9996 KiB
3.Ȁzswap文g
[root@jumper swap]# swapon swapfile
[root@jumper swap]# ls -l
total 10016
-rw-r--r-- 1 root root 10240000 7?28 14:58 swapfile
[root@jumper swap]# free
total used free shared buffers cached
Mem: 513980 505052 8928 0 143900 282288
-/+ buffers/cache: 78864 435116
Swap: 1062240 21256 1040984
[root@jumper swap]#
SwapQ即交换区,除了安装Linux的时候,有多h兛_q它呢?其实QSwap的调整对Linux服务器,特别是Web服务器的性能臛_重要。通过调整SwapQ有时可以越q系l性能瓉Q节省系l升U费用?nbsp;
本文内容包括Q?nbsp;
Swap基本原理
H破128M Swap限制
Swap配置Ҏ能的媄?nbsp;
Swap性能监视
有关Swap操作的系l命?nbsp;
Swap基本原理
Swap的原理是一个较复杂的问题,需要大量的幅来说明。在q里只作单的介绍Q在以后的文章中和大家详细讨论Swap实现的细节?nbsp;
众所周知Q现代操作系l都实现?虚拟内存"q一技术,不但在功能上H破了物理内存的限制QɽE序可以操纵大于实际物理内存的空_更重要的是,"虚拟内存"是隔L个进E的安全保护|,使每个进E都不受其它E序的干扰?nbsp;
Swap I间的作用可单描qCؓQ当pȝ的物理内存不够用的时候,需要将物理内存中的一部分I间释放出来Q以供当前运行的E序使用。那些被释放的空间可能来自一些很长时间没有什么操作的E序Q这些被释放的空间被临时保存到SwapI间中,{到那些E序要运行时Q再从Swap中恢复保存的数据到内存中。这PpȝL在物理内存不够时Q才q行Swap交换?nbsp;
计算机用户会l常遇这U现象。例如,在用WindowspȝӞ可以同时q行多个E序Q当你切换到一个很长时间没有理会的E序Ӟ会听到硬?哗哗"直响。这是因个程序的内存被那些频J运行的E序l?偯"了,攑ֈ了SwapZ。因此,一旦此E序被放|到前端Q它׃从Swap区取回自q数据Q将其放q内存,然后接着q行?nbsp;
需要说明一点,q不是所有从物理内存中交换出来的数据都会被放到Swap中(如果q样的话QSwap׃不堪重负Q,有相当一部分数据被直接交换到文gpȝ。例如,有的E序会打开一些文ӞҎ件进行读写(其实每个E序都至要打开一个文Ӟ那就是运行程序本w)Q当需要将q些E序的内存空间交换出LQ就没有必要文仉分的数据攑ֈ SwapI间中了Q而可以直接将其放到文仉厅R如果是L件操作,那么内存数据被直接释放,不需要交换出来,因ؓ下次需要时Q可直接从文件系l恢复;如果是写文gQ只需要将变化的数据保存到文g中,以便恢复。但是那些用malloc和new函数生成的对象的数据则不同,它们需要SwapI间Q因为它们在文gpȝ中没有相应的"储备"文gQ因此被UC"匿名"(Anonymous)内存数据。这cL据还包括堆栈中的一些状态和变量数据{。所以说QSwap I间?匿名"数据的交换空间?nbsp;
H破128M Swap限制
l常看到有些LinuxQ国内汉化版Q安装手册上有这L说明QSwapI间不能过128M。ؓ什么会有这U说法?在说?128M"q个数字的来历之前,先给问题一个回{:现在Ҏ不存?28M的限Ӟ现在的限制是2GQ?nbsp;
Swap I间是分늚Q每一늚大小和内存页的大一P方便SwapI间和内存之间的数据交换。旧版本的Linux实现SwapI间Ӟ用SwapI间的第一作为所有SwapI间늚一?位映?QBit mapQ。这是说第一늚每一位,都对应着一SwapI间。如果这一位是1Q表C此Swap可用Q如果是0Q表C此|坏块Q不能用。这么说来,W一个Swap映射位应该是0Q因为,W一Swap是映页。另外,最?0个映位也被占用Q用来表CSwap的版本(原来的版本是Swap_space Q现在的版本是swapspace2Q。那么,如果说一늚大小为sQ这USwap的实现方法共能管?8 * ( s - 10 ) - 1"个Swapc对于i386pȝ来说s=4096Q则I间大小׃ؓ133890048Q如果认?1 MB=2^20 Byte的话Q大正好ؓ128M?nbsp;
之所以这h实现SwapI间的管理,是要防止SwapI间中有坏块。如果系l检查到Swap中有坏块Q则在相应的位映上标记?Q表C此不可用。这样在使用SwapӞ不至于用到坏块,而ɾpȝ产生错误?nbsp;
现在的系l设计者认为:
1.现在盘质量很好Q坏块很?nbsp;
2.q有,也不多,只需要将坏块|列出来Q而不需要ؓ每一徏立映?nbsp;
3.如果有很多坏块,׃应该此盘作ؓSwapI间使用?nbsp;
于是Q现在的Linux取消了位映射的方法,也就取消?28M的限制。直接用地址讉KQ限制ؓ2G?nbsp;
Swap配置Ҏ能的媄?nbsp;
分配太多的SwapI间会浪费磁盘空_而SwapI间太少Q则pȝ会发生错误?nbsp;
如果pȝ的物理内存用光了Q系l就会跑得很慢,但仍能运行;如果SwapI间用光了,那么pȝ׃发生错误。例如,Web服务器能Ҏ不同的请求数量衍生出多个服务q程Q或U程Q,如果SwapI间用完Q则服务q程无法启动Q通常会出?application is out of memory"的错误,严重时会造成服务q程的死锁。因此SwapI间的分配是很重要的?nbsp;
通常情况下,SwapI间应大于或{于物理内存的大,最不应小?4MQ通常SwapI间的大应是物理内存的2-2.5倍。但Ҏ不同的应用,应有不同的配|:如果是小的桌面系l,则只需要较的SwapI间Q而大的服务器pȝ则视情况不同需要不同大的SwapI间。特别是数据库服务器和Web服务器,随着讉K量的增加Q对SwapI间的要求也会增加,具体配置参见各服务器产品的说明?nbsp;
另外QSwap分区的数量对性能也有很大的媄响。因为Swap交换的操作是盘IO的操作,如果有多?Swap交换区,SwapI间的分配会以轮的方式操作于所有的SwapQ这样会大大均衡IO的负载,加快Swap交换的速度。如果只有一个交换区Q所有的交换操作会交换区变得很忙,使系l大多数旉处于{待状态,效率很低。用性能监视工具׃发现Q此时的CPUq不很忙Q而系l却慢。这说明Q瓶颈在 IO上,依靠提高CPU的速度是解决不了问题的?nbsp;
pȝ性能监视
SwapI间的分配固然很重要Q而系l运行时的性能监控却更加有价倹{通过性能监视工具Q可以检查系l的各项性能指标Q找到系l性能的瓶颈。本文只介绍一下在Solaris下和Swap相关的一些命令和用途?nbsp;
最常用的是Vmstat命oQ在大多数Unixq_下都有这样一些命令)Q此命o可以查看大多数性能指标?nbsp;
例如Q?nbsp;
# vmstat 3
procs memory swap io system cpu
r b w swpd free buff cache si so bi bo in cs us sy id
0 0 0 0 93880 3304 19372 0 0 10 2 131 10 0 0 99
0 0 0 0 93880 3304 19372 0 0 0 0 109 8 0 0 100
0 0 0 0 93880 3304 19372 0 0 0 0 112 6 0 0 100
............
命o说明Q?nbsp;
vmstat 后面的参数指定了性能指标捕获的时间间隔?表示每三U钟捕获一ơ。第一行数据不用看Q没有h|它仅反映开Z来的q_性能。从W二行开始,反映每三U钟之内的系l性能指标。这些性能指标中和Swap有关的包括以下几:
procs下的w
它表C当前(三秒钟之内)需要释攑ֆ存、交换出ȝq程数量?nbsp;
memory下的swpd
它表CZ用的SwapI间的大?nbsp;
Swap下的siQso
si表示当前Q三U钟之内Q每U交换回内存QSwap inQ的总量Q单位ؓkbytesQso表示当前Q三U钟之内Q每U交换出内存QSwap outQ的总量Q单位ؓkbytes?nbsp;
以上的指标数量越大,表示pȝ忙。这些指标所表现的系l繁忙程度,与系l具体的配置有关。系l管理员应该在^时系l正常运行时Q记下这些指标的数|在系l发生问题的时候,再进行比较,׃很快发现问题Qƈ制定本系l正常运行的标准指标|以供性能监控使用?nbsp;
另外Q用Swapon-s也能单地查看当前Swap资源的用情c例如:
# swapon -s
Filename Type Size Used Priority
/dev/hda9 partition 361420 0 3
能够方便地看出SwapI间的已用和未用资源的大?nbsp;
应该使Swap负蝲保持?0%以下Q这h能保证系l的良好性能?nbsp;
有关Swap操作的系l命?nbsp;
增加SwapI间Q分以下几步Q?nbsp;
1)成ؓ用户
$su - root
2)创徏Swap文g
# dd if=/dev/zero of=swapfile bs=1024 count=65536
创徏一个有q箋I间的交换文件?nbsp;
3)ȀzSwap文g
#/usr/sbin/swapon swapfile
swapfile指的是上一步创建的交换文g?nbsp;4)现在新加的Swap文g已经起作用了Q但pȝ重新启动以后Qƈ不会C前几步的操作。因此要?etc/fstab文g中记录文件的名字Q和SwapcdQ如Q?nbsp;
/path/swapfile none Swap sw,pri=3 0 0
5)验Swap文g是否加上
/usr/sbin/swapon -s
删除多余的SwapI间?nbsp;
1)成ؓ用户
2)使用Swapoff命o收回SwapI间?nbsp;
#/usr/sbin/swapoff swapfile
3)~辑/etc/fstab文gQ去掉此Swap文g的实体?nbsp;
4)从文件系l中回收此文件?nbsp;
#rm swapfile
5)当然Q如果此SwapI间不是一个文Ӟ而是一个分区,则需创徏一个新的文件系l,再挂接到原来的文件系l上?/p>
在Linux RH9下安装mplayer很多ơ了Q以前都是以p|而告l,前两天终于装成功了,己感到庆q。大家以后安装的时候可以作Z个参考(有些地方我也是参考别人的Q?/p>
mplayer是linux下播N度最?正确安装了显卡驱?Q支持媒体格式最多的播放器之一 Q它几乎能播放所有的win媒体文gQ下面介l它的安装方法:
安装大前?
要编译这个Y?认你系l安装了相应的XFree86-devel,q有如果你要~译gui操作界面
(./configure --enable-gui),q请认你的pȝ有libpng,libpng-devel,gtk?
gtk-devel(要求版本大于1.2)q四个Y?可以?a >www.rpmfind.net扑ֈ相应的rpm?
Q这些包通过安装Gnome桌面可以获得Q?br />1、在下蝲mplayer的最新版本及安装所需软g包的集合?br />
2、升UgccQ?(必要,推荐gcc版本?.9.5?.2.x)
查你的gcc版本Q运行gcc -v看输出是多少Q如果是3.0以下的话Q则安装gcc3.0?
上(Ҏmplayer的官方说明,3.0以下的gcc可以?/configre --disable-gcc-checking
参数~译Q但可能不稳定)Q安装gcc3的方法是Q进入gcc3目录Q运行rpm -ivh *.rpm
--nodepsQ全部百分百安装后,开一个终端窗口,q行mv /usr/bin/gcc /usr/bin/gcc2
和mv /usr/bin/gcc3 /usr/bin/gccQ再q行gcc -vQ看输出是否?.0.2Q如果是Q则ok Q不是,则检查安装步骤。?
3、编译安装mplayerQ?
tar vxf MPlayer-****.tarQcd MPlayer-****Q?/configure Q如果你?
要gui的操作界面,则换用这个命?/configrue --enable-guiQ但gq个版本的gui~?
译有错,我和linuxCN都无法成功,pre4版本则没问题Q,makeQmake
installQ都成功q行一下mplayerQ这是ؓ了让它在家目录下建立.mplayerq个配置目录
(.mplayer为隐藏目?用ls -a指o可以看见,cd ~/.mplayer指o可以q入)Q好q行下一
步操作)
./configure --prefix=/usr/local --enable-gui --enable-live
--enable-menu --enable-freetype --enable-fontconfig --enable-win32
--enable-dshow --enable-real --enable-divx4linux --enable-xvid
--disable-arts --language=zh_CN --enable-dynamic-plugins
--with-codecsdir=/usr/local/lib/codecs
--with-win32libdir=/usr/local/lib/codecs
--with-reallibdir=/usr/local/lib/codecs
--with-livelibdir=/usr/local/lib/live
--with-freetype-config=/usr/bin/freetype-config
重要参数说明Q?
--prefix= 安装路径?usr/local
--enable-gui 使用囑Ş界面Qmplayer有命令行和图形界面两U运行方?
--enable-live 使用媒体支?
--enable-freetype 字幕字体可以使用ttf字体
--enable-win32 可以使用win32?dll格式的解码器
--enable-real 支持real格式
--language=zh_CN mplayer界面的格式ؓ中文
--with-codecsdir=/usr/local/lib/codecs 指定解码器搜索\?
--with-win32libdir=/usr/local/lib/codecs 指定win32解码器搜索\?
--with-reallibdir=/usr/local/lib/codecs 指定real解码器搜索\?
--with-livelibdir=/usr/local/lib/live 指定live解码器搜索\?
现在使用
make
自动~译软gQ可以去吃饭Q回来再看?br />
make install //安装
q行mplayer
./mplayer
4、拷贝配|文?Q注意:下面q个etc目录是上一步中解压出来的MPlayer-***?录下的,?etcQ?
cp etc/codecs.conf ~/.mplayer
cp etc/example.conf ~/.mplayer/config
5、安装font和skin:Q如果你选择?/configure --enable-gui那才需要skinQ否则skin
不用安装Q?
q入自己的home目录Q显C隐藏文Ӟq入.mplayer文g夹,?个徏文g夹:font?
Skin?/p>
下蝲font文gQ(mplayer官方|站上有Q拷入到font内拷贝simsun.ttf到~/.mplayer目录?
拯Blue皮肤目录?usr/local/share/mplayer/Skins目录?br />
6、运行方?
两种Q(1Qmplayer /路径/要播攄媒体文g名;Q?Qgmplayer(只有?/configure
--enable-gui~译的这个命令才有效)
现在可以q行mplayer和gmplayer了。但是gmplayer字幕出现问题Q提C找不到
字幕字体文g。按照提C拷贝simsun.ttfQ其他字体文件也可以Q到~/.mplayer目录中(Ҏ件名Q?br />
7、关于~/.mplayer/config文g的一些配|说?
vo=xv(选择默认的播放模式,xv模式是支持显卡硬加速功能的模式Q对cpu的占用很,
推荐Q更多的昄模式可以用命令mplayer -vo help看,其中的vesa模式可以在不启动
xwin界面时播放,有点象当qDOS下的金山影霸)
ao=ossQ选择声音的播放模式,oss是兼Ҏ最好的播放模式Q推荐;你也可以试试sdl?
式)
fs=yesQ全屏模式,yes的话默认以全屏播放,no或前面加#h释掉q行的话则默认是1
Q?播放模式Q?
zoom=yesQ即时改变电q面大,yes的话则可以用鼠标随意播攄面拉大拉,no
的话不能Q?
gui = yesQ默认是囑Ş化操作界面,q需要你先前?/configure --enable-gui来编?
Q否则的话就yes也没有gui操作界面Q?
skin = defaultQ设|默认的skinQ将{号双的值换成skin所攄录就可以讄惌?
skin为默认了Q这个参数在用gui操作界面才有效)
cache = 8192Q默认的播放~存大小Q如果机器内存够大,则将它加大一点,如果不是?
大,譬如128以下Q还是用默认的算了)
framedrop = yesQ允许蟩帧,如果你的机器CPU速度非常非常慢的话请这个yesQ默?
是no或前面加#号将q行止Q对?66MHZ以上的机器,都设成no或前面加#P
其他讄用默认就行 ?/p>
#rpm -ihv kernel-module-ntfs-2.6.9-11.EL-2.1.20-0.rr.6.0.i686.rpmxQNTFS文gpȝ已经d成功
如果安装中发CQ何问题,查询Help Section文档Q后l步骤出现的问题也需?br />
查看Help Section.
载入kernel─ntfs模块Q?br />#/sbin/modprobe ntfs
查看ntfs信息
#dmesg | grep NTFS
NTFS driver v1.1.22 [Flags: R/O MODULE]
#cat /proc/filesystems
nodev rootfs
nodev bdev
nodev proc
nodev sockfs
nodev tmpfs
nodev shm
nodev pipefs
ext3
ext2
nodev ramfs
nodev devpts
ntfs