知识大全 如何通过RamDisk的方法加速小型数据库的访问速度
Posted 数据库
篇首语:身体的财富是健康,思想的财富是知识。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 如何通过RamDisk的方法加速小型数据库的访问速度相关的知识,希望对你有一定的参考价值。
如何通过RamDisk的方法加速小型数据库的访问速度 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
RamDisk简介 本文首先介绍了如何在rh 系统上创建一个RamDisk 然后介绍了如何通过将数据库内容存放到RamDisk中的方法来加速对数据库的访问 什么是RamDisk?一个RamDisk是分配作为一个分区的内存块 或者说将内存模拟为硬盘空间 从而可以想对待硬盘空间一样在其上保存文件 为什么会要使用RamDisk呢?主要是为了提高速度 若事先知道特定的文件将被高频率访问 通过将文件存放在内存里就可以提高性能 例如web服务器就可以采用这种方式来加快访问速度 下面是一些可能会对加深对RamDisk的理解的资源链接 /usr/src/linux/Documentation/RamDisk txt 如何使用RamDisk 使用RamDisk是非常简单的 首先 RH 的缺省安装本身就有对RamDisk的支持 你所要作的就是格式化一个RamDisk 然后加载(mount)其到目录结构下即可 通过命令 ls al /dev/ram* 可以查看系统可以利用的RamDisk的数目 这些RamDisk并不起作用 除非设置以后 下面是一个非常简单的使用RamDisk的例子 # create a mount point: mkdir /tmp/RamDisk # create a filesystem: mke fs /dev/ram # mount the RamDisk: mount /dev/ram /tmp/RamDisk 这三个命令分别为RamDisk创建一个目录 格式化它(创建文件系统) 最后加载该文件系统到 /tmp/RamDisk 上 下面就可以对待该目录为一个分区使用 若格式化失败 则说明你的系统内核没有对RamDisk的支持 则需要重新编译内核 RamDisk支持的内核开关是 CONFIG_BLK_DEV_RAM 缺省的RamDisk的大小为 Mb= 块 在创建randisk文件系统时可以得到RamDisk大小的信息 mke fs Jan for EXT FS b / / Linux ext filesystem format Filesystem label= inodes blocks blocks ( %) reserved for the super user First data block= Block size= (log= ) Fragment size= (log= ) block group blocks per group fragments per group inodes per group 运行命令 df k /dev/ram 可以查看可以真正使用的RamDisk的空间大小(因为创建文件系统时会占用一些空间) >df k /dev/ram Filesystem k blocks Used Available Use% Mounted on /dev/ram % /tmp/RamDisk 需要注意的是当你的系统重新启动以后 RamDisk中的数据会丢失 所以如果RamDisk中的数据被修改了 必须将其备份到别的目录下 改变RamDisk的大小 为了使用RamDisk 可以通过将对RamDisk的支持编译进入内核中或者编译为模块的方式 在需要时将其加载 编译为模块的方式可以在加载模块时动态决定RamDisk的大小 当RamDisk被编译进入内核 改变RamDisk的大小的方法为在nf中田加内容 RamDisk_size= (or RamDisk= for old kernels) 然后运行lilo命令 重新启动机器 这样下次加载RamDisk以后 大小就变为 M boot=/dev/hda map=/boot/map install=/boot/boot b prompt timeout= image=/boot/vmlinuz label=linux root=/dev/hda read only RamDisk_size= 当编译RamDisk支持为模块形式 可以在加载时决定RamDisk的大小 可以通过杂/etc/conf module中添 options rd rd_size= 或者在动态加载是通过命令行的形式传入 insmod rd rd_size= 下面是关于如何使用模块的一个例子 卸载前面加载的文件系统 umount /tmp/RamDisk 卸载模块 rmmod rd 加载RamDisk模块 并设置大小为 M insmod rd rd_size= 创建一个文件系统 mke fs /dev/ram 加载RamDisk的文件系统 mount /dev/ram /tmp/RamDisk 在web服务器中使用RamDisk的例子 这里举一个在web服务器中使用三个RamDisk的例子 这里要确保web服务器的所有内容不超过 M(包括CGI的内容) 首先 对web服务器的root目录下的内容备份到其他地方 然后重新创建的根目录 mv /home/d/ /home/d_real mkdir /home/d mkdir /home/d/cgi bin mkdir /home/d/ mkdir /home/d/icons 然后 在/etc/rc d/init d/中添加如下启动执行信息 ### Make the RamDisk partitions /sbin/mkfs t ext /dev/ram /sbin/mkfs t ext /dev/ram /sbin/mkfs t ext /dev/ram ### Mount the RamDisks to their appropriate places mount /dev/ram /home/d/cgi bin mount /dev/ram /home/d/icons mount /dev/ram /home/d/ ### Copying real directory to RamDisks (the ### data on the RamDisks is lost after a reboot) tar C /home/| tar C /home/d x ### After this you can start the web server 注 切记若RamDisk中的数据被修改 并且做的修改都是有意义的 则需要对RamDisk中的数据做备份 你可以启动一个cron任务来完成这个工作 如 每10分钟检查一次看是否有数据被修改 若有则对数据进行备份 RamDisk的一个应用是使用/tmp做为RamDisk 若系统中有很多程序使用RamDisk 则可以很明显地加快系统速度 而且每次系统重新启动这些暂时数据都会丢失 通过RamDisk加速小型数据库的访问速度 如果将将PostgreSQL数据库服务器文件加载到内存中就可以加快数据库访问速度 在/test目录下加载RamDisk 一 在/test目录下设置RamDisk mkdir p /Test mkfs t ext /dev/ram mount /dev/ram /Test 这时候你将拥有一个4M大小的RamDisk 根据需要你可以更改你的RamDisk的大小 二 为PostgreSQL设置RamDisk 理想状态下 你将拥有两个数据库服务器 一个是可以进行修改的 另外一个是存放在RamDisk中的拷贝 为了达到这个目的 需要使用命令 pg_dump 或 pg_dumpall 注 这里假设已经在nf中设置RamDisk的大小 使其大于数据库服务器的大小 如果你希望了解合适的大小 可以使用命令 cd /var/lib/pgsql; du 然后 ### Stop the current postgresql server /etc/rc d/init d/postgres stop ### rename the current directory mv /var/lib/pgsql /var/lib/pgsql_main #### Create a directory to have our RamDisk on mkdir p /var/lib/pgsql_memory #### change the ownership of the new directory to postgres or whatever #### the actual owner is chown postgres /var/lib/pgsql_memory #### Make an alias or link to the original name /var/lib/pgsql ln s /var/lib/pgsql_memory /var/lib/pgsql #### Format the RamDisk mkfs t ext /dev/ram #### Mount the RamDisk to the postgresql directory mount /dev/ram /var/lib/pgsql_memory #### Copy everything from the main directory into the RamDisk tar C /var/lib/pgsql_main cp | tar C /var/lib/pgsql_memory xp ### Start the current postgresql server /etc/rc d/init d/postgres start 经过测试 发现在RamDisk中的PostgreSQL的性能提升最高达到 %左右 需要的时候 可以将其他的应用放置在RamDisk中以提升效率 如ldap服务器等 cha138/Article/program/Oracle/201311/16820相关参考
加快JDBC中JSP数据库的访问速度 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! JSP程序都
提高Linux上小型数据库的速度 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 介绍 Okay
通过ADO.NET访问数据库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一ADONET访问数据
知识大全 PB通过ODBC访问MySQL数据库时报错的处理方法
PB通过ODBC访问MySQL数据库时报错的处理方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 创建通过 WDO访问数据的 JSF 应用程序(1)
创建通过WDO访问数据的JSF应用程序(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 引言
知识大全 创建通过 WDO访问数据的 JSF 应用程序(4)
创建通过WDO访问数据的JSF应用程序(4) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 屏幕
知识大全 创建通过 WDO访问数据的 JSF 应用程序(5)
创建通过WDO访问数据的JSF应用程序(5) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 设置
知识大全 创建通过 WDO访问数据的 JSF 应用程序(2)
创建通过WDO访问数据的JSF应用程序(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 接下
在web应用中对页面的访问控制通常通过程序来控制流程为登录>设置session>访问受限页面时检查session是否存在如果不存在禁止访问 对于较小型的web应用可以通过tomcat
有些人在网上说再增加一张中介表可以提高速度 中介表linker(uidmid) 中介表是这样用的每次当一个人发了一篇帖子则将所有订阅他的人(uid)和这篇帖子的mid插入中介表里例如uid=的