知识大全 如何通过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数据库的访问速度

加快JDBC中JSP数据库的访问速度  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JSP程序都

知识大全 提高Linux上小型数据库的速度

提高Linux上小型数据库的速度  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  介绍  Okay

知识大全 通过ADO.NET访问数据库

通过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)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  接下

知识大全 为tomcat页面设置访问权限

  在web应用中对页面的访问控制通常通过程序来控制流程为登录>设置session>访问受限页面时检查session是否存在如果不存在禁止访问  对于较小型的web应用可以通过tomcat

知识大全 在数据量和访问量剧增条件下保持数据库效率[2]

  有些人在网上说再增加一张中介表可以提高速度  中介表linker(uidmid)  中介表是这样用的每次当一个人发了一篇帖子则将所有订阅他的人(uid)和这篇帖子的mid插入中介表里例如uid=的