proc/sys/fs/file-nr为当前已打开文件数

/proc/sys/fs/file-max为系统总打开文件数限制,而ulimit -a看到的是单个进程限制,应该设置这个值。

ulimit -n 4096可以将其设置为4096
不过要想系统重启后仍然有效,需要将此命令加入/etc/profile

查看某一个进程的最大打开文件数  lsof -p pid ¦ wc -l

Too many open files 问题再现

在之前的“linux文件描述符1024限制”一文中我们用命令ulimit -HSn 65536对句柄数做了修改,但最近发现Too many open files 问题有来了,用lsof -p $java_pic|wc -l发现跑到1200左右就出现大量的此类问题,于是通过网上一篇比较详细的介绍 ,更加彻底的了解了问题引起的原因!

Too many open files 问题出现有两种情况:
一种是在搜索的时候出现,多半是由于索引创建完毕之后被移动过,如果创建索引的时候不出现该错误,搜索的时候也一般是不会出现的。如果出现了,有两种处理办法,一种是修改合并因子和最小合并因子,并且使用
IndexWriter.Optimize() 优化索引,这样会将索引文件数量减少到文件系统限制之内;另外一种办法是修改操作系统的打开文件数量限制。方法如下:
1. 按照最大打开文件数量的需求设置系统, 并且通过检查/proc/sys/fs/file-max文件来确认最大打开文件数已经被正确设置。
# cat /proc/sys/fs/file-max
如果设置值太小, 修改文件/etc/sysctl.conf的变量到合适的值。 这样会在每次重启之后生效。 如果设置值够大,跳过下步。
# echo 2048 > /proc/sys/fs/file-max
编辑文件/etc/sysctl.conf,插入下行。
fs.file-max = 8192
2. 在/etc/security/limits.conf文件中设置最大打开文件数, 下面是一行提示:
#
添加如下这行。
* - nofile 8192
这行设置了每个用户的默认打开文件数为2048。 注意"nofile"项有两个可能的限制措施。就是项下的hard和soft。 要使修改过得最大打开文件数生效,必须对这两种限制进行设定。 如果使用"-"字符设定, 则hard和soft设定会同时被设定。
硬限制表明soft限制中所能设定的最大值。 soft限制指的是当前系统生效的设置值。 hard限制值可以被普通用户降低。但是不能增加。 soft限制不能设置的比hard限制更高。 只有root用户才能够增加hard限制值。
当增加文件限制描述,可以简单的把当前值双倍。 例子如下, 如果你要提高默认值1024, 最好提高到2048, 如果还要继续增加, 就需要设置成4096。
另外一种情况是在创建索引的时候,也有两种可能,一种是 合并因子太小,导致创建文件数量超过操作系统限制,这时可以修改合并因子,也可以修改操作系统的打开文件数限制;另外一种是合并因子受虚拟机内存的限制,无法调整到更大,而 需要索引的doc 数量又非常的大,这个时候就只能通过修改操作系统的打开文件数限制来解决了。
在此基础上,我还修改了以下一个配置文件
vi /etc/sysctl.conf
添加:
# Decrease the time default value for tcp_fin_timeout connection
net.ipv4.tcp_fin_timeout = 30
# Decrease the time default value for tcp_keepalive_time connection
net.ipv4.tcp_keepalive_time = 1800
# Turn off tcp_window_scaling
net.ipv4.tcp_window_scaling = 0
# Turn off the tcp_sack
net.ipv4.tcp_sack = 0
#Turn off tcp_timestamps
net.ipv4.tcp_timestamps = 0
然后 service network restart,这些都和TCP sockets有关的优化。
另外需要在 /etc/rc.d/rc.local里添加已使得重启的时候生效。
echo "30">/proc/sys/net/ipv4/tcp_fin_timeout
echo "1800">/proc/sys/net/ipv4/tcp_keepalive_time
echo "0">/proc/sys/net/ipv4/tcp_window_scaling
echo "0">/proc/sys/net/ipv4/tcp_sack
echo "0">/proc/sys/net/ipv4/tcp_timestamps
因为不是所有的程序都在root下跑的,所有linux有对hard 与soft open files 的区分,普通用户受hard的限制,无论ulimit -n $数值调到多高,都跑不到 /etc/security/limits.conf里nofile的值.
这样的优化后 lsof -p $java_pid|wc -l可以跑到4千以上都不会抛出too many open files。
但是我们通过以上的文章详细介绍知道,这样也是治标不治本,找到java哪个文件不关闭文件描述符或者被请求过多的原因才是最重要的!
posted @ 2008-12-10 15:52 小马歌 阅读(4943) | 评论 (0)编辑 收藏
 
ffmpeg+mencoder几乎可以完成目前基于web的播客平台任何音视频处理的操作.如果还需要添加一些什么的话,那么就是视频在线录制功能了,这个也可以用ffmpeg+fms来完成,因此一般的类似于YouTube的一些可见功能都可以在ffmpeg+mencoder+fms来做后台实现.由于fms没有实践,因此这里不描述.
 
本文档有三部分:
 1)ffmpeg+mencoder
环境搭建
 2)
常见操作说明
 3)
个人的一些使用心得

另外还包括视频截取和队列处理的shell实现


文档整理下载:/Files/xiaomage234/video.rar
/Files/xiaomage234/videotech-doc.rar
posted @ 2008-12-09 10:48 小马歌 阅读(456) | 评论 (0)编辑 收藏
 

ffmpeg(2006/10/26-6793版) dll lib x264 vc6sp6编译成功

1. 下载最新的ffmpeg源代码
(1) 下载并安装Subversion (http://subversion.tigris.org/)
(2) 运行svn co svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

2. 下载安装最新的mingw和msys
(1) mingw通过在http://prdownloads.sf.net/mingw/MinGW-5.0.3.exe?download下载mingw installer安装,我安装的时候选择了candidate
(2) msys在http://www.mingw.org/下载安装
安装过后要填入mingw的路径,比如d:/mingw

3. 下载安装最新的bash
(1) 在http://www.mingw.org/下载最新的二进制版本
(2) 解压至msys的安装目录下

4. 在msys.bat中加入下面语句:
call "C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"

5. 在msys中编译ffmpeg
(1) ./configure --enable-shared --disable-static --enable-memalign-hack --prefix=d:/ffmpeg
(2) make
(3) make install

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
加入x264支持

0. 安装nasm

1. 编译x264
./configure --prefix=d:/mingw
make
make install

2. 编译ffmpeg
./configure --enable-shared --disable-static --enable-memalign-hack --enable-x264 --enable-gpl --prefix=d:/ffmpeg
make
make install
posted @ 2008-12-09 09:53 小马歌 阅读(753) | 评论 (0)编辑 收藏
 
我们经常会遇到下载的视频文件格式不对,无法在其他播放设备(如手机、DVD)中使用的问题,现在,我们介绍五个功能强大且易于使用的媒体转换器,用于转换不同类型的视频文件。

  Super (Windows)

Super (Windows)

  Super是一个免费的媒体转换器,使用图形界面的前端,后端是几个强大的命令行工具,如FFmpeg、MEncoder和MPlayer.这个转化器拥有广泛的应用,且可以根据用户的喜好进行定制选项,几乎可以转换任何类型的文件。缺点是操作控制和使用较为混乱,初次使用会感到设置较为麻烦。

  FormatFactory (Windows)

FormatFactory (Windows)

  Format Factory是一个基于Windows的免费的媒体转换器,可以转换视频,音频,甚至图片格式。Format Factory有美观大方的图标驱动的界面,易于使用,并可以进行批量的媒体转换。

  MediaCoder (所有平台)

MediaCoder

  MediaCoder是一个批处理媒体格式转换器,可以转换大多数流行的视频和音频格式。和Super类似,MediaCoder也是前端图形界面,后端为大量命令行工具,MediaCoder目前在所有平台都可使用,但对Windows的支持最好。MediaCoder还为iPhone、iPod touch和PSP提供特殊设备接口。

  HandBrake (所有平台)

HandBrake

  HandBrake是一个颇受欢迎的开放源码媒体转换器,可以将DVD视频编码转换为多种流行的输出格式。具有在图形和命令行两种用户界面,HandBrake仅能够转换MPEG视频(包括DVD视频),是一个很好的DVD转换工具。

  FFmpeg (所有平台)

FFmpeg

  FFmpeg是免费的、跨平台的命令行编码格式转换工具,上面介绍的不少图形化工具实际上都是后台调用FFmpeg的,虽然FFmpeg的易用性较差,但不可否认FFmpeg是强大而灵活的,FFmpeg使用命令行来进行格式转换。

  英文原文:Five Best Media Converters

posted @ 2008-12-09 09:51 小马歌 阅读(260) | 评论 (0)编辑 收藏
 
文章最后一段:
“ 

我虽然找回了我的苹果笔记本和比较有纪念价值的心爱礼物!仍然很想知道深圳的警察找得回做真警察的感觉吗?运发集团年过半百还在玩弄阴谋阻碍社会文明发展的大叔大伯们这一生还能活得明白吗?没受到法律制裁的黑心司机在他们的双重保护下还能够接受教训愕然回首吗?

安慰的讲在3天3夜的苦战中,我看见了自己的执著和坚强。也亲睹了在繁华城市掩盖下的……也许是收获……也许是警示……



原文下载:/Files/xiaomage234/sz-car.rar
posted @ 2008-12-05 12:11 小马歌 阅读(471) | 评论 (1)编辑 收藏
 

 

 1        Image src = javax.imageio.ImageIO.read(file);
 2        int width = 116// 小图宽
 3        int height = 90// 小图高
 4        BufferedImage tag = new BufferedImage(width,height, BufferedImage.TYPE_INT_RGB);
 5        // 绘制缩小后的图
 6        tag.getGraphics().drawImage(src, 00,width, height, null); 
 7        String spicBasePath = baseSmallPicturePath+ getFileDir(curname);
 8        String smallpicpath = tomcatPath+spicBasePath;
 9        smallpicpath = new FileOperate().createDir(smallpicpath);
10        File smallpicfile = new File(smallpicpath,newfilename);
11        // 输出到文件流
12        FileOutputStream out = new FileOutputStream(smallpicfile); 
13        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
14        encoder.encode(tag); // 近JPEG编码
15        out.close();
posted @ 2008-12-04 15:50 小马歌 阅读(273) | 评论 (0)编辑 收藏
 
posted @ 2008-12-03 09:26 小马歌 阅读(133) | 评论 (1)编辑 收藏
 

如果你的页面对IE7兼容没有问题,又不想大量修改现有代码,同时又能在IE8中正常使用,微软声称,开发商仅需要在目前兼容IE7的网站上添加一行代码即可解决问题,此代码如下:
CODE:
<meta http-equiv="x-ua-compatible" content="ie=7" />
以上代码我已用过。很好用,大家如有遇到类似问题。不防试试。

本文来自: http://hi.baidu.com/huo1608

posted @ 2008-11-29 10:38 小马歌 阅读(3352) | 评论 (5)编辑 收藏
 

总体的感觉是IE7比 IE6 兼容性更好,更健壮。
几个细节对比:
1,如果页面无编码描述定义,比如: <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
在IE6里可能显示乱码,但IE7不写也可以显示出来。

2,<a href 标签去请求js事件,该事件请求图片的过程中,如果这么写: <a hef="javascript:viod(0)" onclick="call()",图片可能会遇到 "Aborted"的错误,即图片加载过程中被其他事件打扰,造成下载失败。但在 IE7就没事。

写法可以改成:
<a hef="#" onclick="call()",[这种写法会跳到页头的锚点]

或者 <a hef="javascript:call()"  [推荐这种写法]

3,还有一个<button标签的提交方法 <form的onsubmit方法执行完js方法后,必须 return false。[这个跟ie版本无关]

posted @ 2008-11-24 12:33 小马歌 阅读(335) | 评论 (0)编辑 收藏
 

有的flv缺少meta信息,导致flash播放器不能播放。
可以用 flvmdi.exe这个工具进行meta信息的注入。
本地下载地址:
/Files/xiaomage234/flvmeta.rar

posted @ 2008-11-20 11:15 小马歌 阅读(575) | 评论 (0)编辑 收藏
仅列出标题
共95页: First 上一页 76 77 78 79 80 81 82 83 84 下一页 Last