为 Linux 上的 Oracle 数据库添加交换空间

举报
Tiamo_T 发表于 2022/08/12 08:41:02 2022/08/12
【摘要】 如果您在您的环境中运行 Oracle 数据库,并且由于内存而存在一些性能问题,您可能需要查看系统上配置的交换空间。

如果您在您的环境中运行 Oracle 数据库,并且由于内存而存在一些性能问题,您可能需要查看系统上配置的交换空间。

对于 Oracle 11g 数据库,以下是 Oracle 关于应添加多少空间的建议。

  • 如果您的 RAM 大小小于或等于 2 GB,则您的交换大小应该是 RAM 的 1.5 倍。例如,如果您的 RAM 大小为 2 GB,则应创建 3GB 的交换空间
  • 如果您的 RAM 大小在 2 GB 和 16 GB 之间,那么您的交换大小应该与 RAM 的大小相同。例如,如果您的 RAM 大小为 4 GB,则应创建 4 GB 的交换空间
  • 如果您的 RAM 大小超过 16 GB,则交换大小应为 16 GB。例如,如果您的 RAM 大小为 32 GB,则创建 16 GB 的交换空间就足够了

当您配置数据库以提高性能时,还有许多其他参数会发挥作用。如果您的数据库出于性能原因需要较大的 SGA 大小,您可能需要考虑使用 HugePages。默认情况下,SGA 页面大小被分块为 4k。当您使用 HugePages 时,您的 SGA 页面大小被分成至少 2MB。在配置数据库时,您必须牢记这一点。

您可以查看当前的 HugePagesize,如下所示。

$ grep Huge /proc/meminfo
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
Hugepagesize:     4096 kB

这篇 Oracle 文章将向您介绍在使用大内存时可能需要考虑的大页面。

在 Linux 上,执行 free 命令,以识别当前 RAM 大小和 SWAP 大小。默认情况下,free 命令以 kb 为单位显示输出。由于我们提供了 -m 选项,它以 MB 为单位显示输出。如下所示,该系统有 3 GB 的 RAM 和 2 GB 的交换空间。

$ free -m
             total       used       free     shared    buffers     cached
Mem:          3034       2907        126          0        107       1103
-/+ buffers/cache:       1696       1338
Swap:         2047         85       1962

您还可以从 /proc/meminfo 文件中获取系统的总 RAM 大小和交换大小,如下所示。这以千字节显示输出。


$ egrep 'MemTotal|SwapTotal' /proc/meminfo
MemTotal:      3107636 kB
SwapTotal:     2096472 kB

您可以使用如何添加交换空间文章中介绍的两种方法中的任何一种将交换空间添加到您的系统。

以下示例将向您的 Linux 系统添加 1 GB 的交换文件。

dd if=/dev/zero of=/root/myswapfile bs=1M count=1024

chmod 600 /root/myswapfile

mkswap /root/myswapfile

swapon /root/myswapfile
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。