温馨提示×

ubuntu oracle慢怎么破

小樊
36
2026-09-16 23:59:25
栏目: 云计算

“Ubuntu + Oracle 慢”通常不是 Ubuntu 本身慢,而是 Oracle 在 Linux 上的一些默认行为和资源配置没调好。下面按最常见原因 → 对应解决办法给你一套“实战清单”,你可以逐条对照。


一、最最常见:共享内存 / 内核参数没调(必做)

Oracle 严重依赖 SHM / HugePages,Ubuntu 默认偏小。

1️⃣ 检查共享内存

df -h /dev/shm

如果只有几百 MB,Oracle 会非常卡。

解决:

sudo vim /etc/fstab

修改或添加:

tmpfs /dev/shm tmpfs defaults,size=4G 0 0

然后:

sudo mount -o remount /dev/shm

2️⃣ 内核参数(Oracle 官方推荐)

编辑:

sudo vim /etc/sysctl.conf

加入(示例,内存 8G):

kernel.shmmax = 4294967296
kernel.shmall = 1048576
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.core.rmem_max = 4194304
net.core.wmem_max = 4194304

生效:

sudo sysctl -p

二、强烈建议:开启 HugePages(性能提升巨大)

Oracle 官方强烈推荐。

查看是否启用

grep Huge /proc/meminfo

简单开启方式

sudo sysctl -w vm.nr_hugepages=2048

(2048 × 2MB = 4GB,按内存调整)

并在 /etc/security/limits.conf 加:

oracle soft memlock unlimited
oracle hard memlock unlimited

重启 Oracle 后效果明显。


三、磁盘 I/O 慢(非常常见)

1️⃣ 用 SSD / NVMe

Oracle 对 I/O 极敏感。

2️⃣ 文件系统建议

  • ✅ ext4(稳定)
  • ✅ xfs(推荐)
  • ❌ btrfs(不推荐)

3️⃣ 挂载参数优化

sudo vim /etc/fstab

例如:

/dev/sdb1 /u01 ext4 defaults,noatime,nodiratime 0 0

四、Oracle 本身配置问题

1️⃣ SGA / PGA 太小

SHOW PARAMETER sga_target;
SHOW PARAMETER pga_aggregate_target;

一般建议:

  • SGA ≈ 物理内存 50%
  • PGA ≈ 20%

2️⃣ 没开自动内存管理(新手友好)

ALTER SYSTEM SET MEMORY_TARGET=4G SCOPE=SPFILE;

五、Ubuntu 特有问题

1️⃣ 防火墙

sudo ufw disable

(测试用,生产要开端口)

2️⃣ Swap 太少

Oracle 不喜欢无 swap:

free -h

建议 swap ≥ 2G


六、连接慢(不是查询慢)

1️⃣ 反向 DNS 解析

sudo vim /etc/hosts

加上:

127.0.0.1   localhost yourhostname

2️⃣ listener 慢

lsnrctl status

检查是否有超时。


七、快速自查顺序(建议照做)

df -h /dev/shm
free -h
grep Huge /proc/meminfo
top
iostat -x 1

八、如果你愿意,我可以更精准帮你

你可以告诉我:

  1. Oracle 版本(11g / 12c / 19c ?)
  2. Ubuntu 版本
  3. 内存多大
  4. 连接慢 / 查询慢 / 启动慢 / 整体卡

我可以直接给你一套可复制的配置

0