裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被unix通过文件系统来读取的特殊字符设备。本文收集裸设备和oracle问答20例。
1.什么叫做裸设备?
裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被unix通过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写操作。不经过文件系统的缓冲。
2.如何辨别裸设备?
在unix的/dev 目录下,有许多文件,其中有两个大类:字符设备文件和块设备文件。
字符设备特殊文件进行i/o操作不经过操作系统的缓冲区,而块设备特殊文件用来同外设进行定长的包传输。字符特殊文件与外设进行i/o操作时每次只传输一个字符。而对于块设备特殊文件来说,它用了cache机制,在外设和内存之间一次可以传送一整块数据。裸设备使用字符特殊文件。在/dev 目录下,你可以看到许多这样的文件。
3.使用裸设备的好处
因为使用裸设备避免了再经过unix操作系统这一层,数据直接从disk到oracle进行传输,所以使用裸设备对于读写频繁的数据库应用来说,可以极大地提高数据库系统的性能。当然,这是以磁盘的i/o 非常大,磁盘i/o已经称为系统瓶颈的情况下才成立。如果磁盘读写确实非常频繁,以至于磁盘读写成为系统瓶颈的情况成立,那么采用裸设备确实可以大大提高性能,最大甚至可以提高至40%,非常明显。
而且,由于使用的是原始分区,没有采用文件系统的管理方式,对于unix维护文件系统的开销也都没有了,比如不用再维护i-node,空闲块等,这也能够导致性能的提高。
4.如何决定是否应该使用裸设备?
判断是否使用裸设备要从以下方面进行考虑:首先,数据库系统本身需要已经被比较好的经过了优化。优化是一门很有些技术的话题,很难简单地讲述。其次,使用unix命令来辨别是否存在磁盘读写瓶颈。比如unix的vmstat, sar 等命令都可以较好的进行鉴别。如果决定采用裸设备,需要磁盘上还有空闲的分区。否则,就要新添磁盘,或者对原有系统重新规划。
5.什么系统必须使用裸设备?
如果使用了oracle 并行服务器选项,则必须采用裸设备来存放所有的数据文件,控制文件,重做日志文件。只有把这些文件放到裸设备上,才能保证所有oracle 实例都可以读取这个数据库的文件。这是由unix操作系统的特性决定的。
还有一种情况是,如果你想使用异步i/o,那么在有些unix上也必须采用裸设备。这个需要参考具体unix的相关文档。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器