HLS直播服务节点优化 tmpfs

使用场景

在一些场景中,比如HLS直播服务器中,当我们采用Nginx的方式,将文件发布出去的时候,这些文件的大小有限,而且访问非常集中。这种场景下IO会成为我们服务器的瓶颈,我们一般采用的方法是,将这些文件直接放入内存,或者是由内存虚拟出来的磁盘空间上。这样IO的瓶颈基本上就不存在了。

tmpfs

在Linux系统中,tmpfs可以实现我们刚才说的功能。

tmpfs是Linux/Unix系统上的一种基于内存的文件系统。tmpfs可以使用您的内存或swap分区来存储文件。由此可见,temfs主要存储暂存的文件。

linux内核中的VM子系统负责在后台管理虚拟内存资源Virtual Memory,即RAM和swap资源,透明地将RAM页移动到交换分区或从交换分区到RAM页,tmpfs文件系统需要VM子系统的页面来存储文件。tmpfs自己并不知道这些页面是在交换分区还是在RAM中;做这种决定是VM子系统的工作。tmpfs文件系统所知道的就是它正在使用某种形式的虚拟内存。

tmpfs基于内存,因而速度是相当的,另外tmpfs使用的VM资源是动态的,当删除tmpfs中文件,tmpfs 文件系统驱动程序会动态地减小文件系统并释放 VM 资源,当然在其中创建文件时也会动态的分配VM资源。另外,tmpfs不具备持久性,重启后数据不保留,原因很明显,它是基于内存的。

编译内核时,启用“Virtualmemory file system support”就可以使用tmpfs,linux kernel从2.4以后都开始支持tmpfs。目前主流的linux系统默认已启用tmpfs,如Redhat。

在Centos6.5中:

执行命令#df –h

 

一般可以看到已经有/dev/shm 使用的文件系统为tmpfs默认为系统内存的一半。

如果需要修改其大小,则# vi /etc/fstab中修改:

修改为512M:

tmpfs/dev/shm tmpfs defaults,size=512m 0 0

 

如何将某个目录设置为tmpfs

1)      使用bind

创建一个目录

#mkdir /dev/shm/nginx_pub/

#修改权限

chmod 1777 /dev/shm/nginx_pub

#mount --bind

#mount --bind /dev/shm/nginx_pub/ /home/ysten/var/

查看

#ls –ld /home/ysten/var

2)      直接mount的方式创建

# mount tmpfs /tmp -t tmpfs -o size=512M

 

主流应用的优化

现在很多应用已经支持了tmpfs的优化,以CentOS 的/tmp目录使用了tmpfs

1)       将squid的缓存目录cache_dir放到/tmp下

cache_dir ufs/tmp 256 16 256

重启一下squid服务,这样缓存目录都放在了tmpfs文件中了,速度不用说吧。

2)      将php的session文件放在/tmp下

通过phpinfo测试文件查看你的phpsession存储位置,如果不在/tmp下,修改php.ini文件,修改如下:

session.save_path= “/tmp”

当然如果您的网站访问量比较大,可/tmp下设置分层目录存储session,语法如下:

session.save_path=”N;/save_path”,N 为分级的级数,save_path为开始目录。

3)      将服务的socket文件放在/tmp下

如nginx.socket和mysql.sock

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值