我有一个默认的 Solaris 10 安装,运行在 64GB 的机器上。出于某种原因,并非所有内存都可用。我之所以对此感到困扰,是因为我试图让 mysql 在那里运行,并给它 58GB 或更多的 RAM,但我可以映射的最大内存是 45GB(nmap 失败)。
除了 GUI(我们很快就会删除它)之外,什么都没有运行。但是 UI 无法解释 13 GB 内存不知从何而来。
如果 ARC 是 Solaris 中使用的内存的一部分(与 Linux 中的文件缓存相反),则 UI 会消耗 5GB,而我们仍然应该为 MySQL 提供至少 55GB 的 RAM。但是:如果此内存被 ARC 消耗,则当 innodb 尝试 nmap 内存时(或者确实会这样做?),它应该放弃内存,因此这毫无意义。
我如何才能知道是什么消耗了这块内存,并释放它?
一些技术数据:
#kstat -m zfs | grep 大小 数据大小 7847447040 hdr_大小 139495272 l2_hdr_size 0 l2_大小 0 其他尺寸 510852000 尺寸 8497794312 # 顶部 96 个进程:95 个处于休眠状态,1 个在 CPU 上 CPU 状态:99.9%空闲,0.0%用户,0.1%内核,0.0%iowait,0.0%交换 内存:64G 物理内存、51G 可用内存、2048M 交换、2048M 可用交换 PID 用户名 LWP PRI NICE 大小 RES 状态 时间 CPU 命令 1529 根 1 59 0 67M 10M 睡眠 11:17 0.20% mix_applet2 902 root 1 59 0 12M 9848K 睡眠 4:33 0.08%gconfd-2 1923 root 34 59 0 165M 57M 睡眠 3:50 0.06%java 1525 root 1 59 0 69M 13M 睡眠 3:24 0.06% gnome-netstatus 644 根 1 58 0 45M 29M 睡眠 2:38 0.05% Xorg 1501 root 1 59 0 73M 18M 睡眠 2:16 0.04% gnome-panel 19814 根 1 59 0 3268K 1820K cpu 0:00 0.03% 顶部 2416 根 47 59 0 87M 68M 睡眠 2:08 0.03%java 22587 无访问 18 59 0 131M 115M 睡眠 2:13 0.03% java 744 无访问 18 59 0 132M 115M 睡眠 2:13 0.03% java 908 根 1 59 0 6608K 4020K 睡眠 0:09 0.01% xscreensaver 2435 root 2 49 0 73M 14M 睡眠 0:18 0.01% gnome-terminal 2497 根 23 59 0 11M 7384K 睡眠 0:04 0.01% nscd 22367 根 1 59 0 9832K 6636K 睡眠 0:01 0.00% snmpd 15253 root 1 59 0 6516K 3840K 睡眠 0:00 0.00% sshd # prtdiag -v 系统配置:Dell Inc. PowerEdge R710 BIOS 配置:Dell Inc. 2.2.10 11/09/2010 BMC 配置:IPMI 2.0(KCS:键盘控制器样式) ==== 处理器插槽 ======================================= 版本 位置 标签 -------------------------------- -------------------------- 英特尔(R) 至强(R) CPU X5670 @ 2.93GHz CPU1 英特尔(R) 至强(R) CPU X5670 @ 2.93GHz CPU2 ==== 存储设备插座 =================================== 类型 状态 设置 设备定位器 银行定位器 ------- ------ --- ------------------- -------------------- 未知正在使用 1 DIMM_A1 未知正在使用 1 DIMM_A2 未知空 2 DIMM_A3 未知正在使用 2 DIMM_A4 未知正在使用 3 DIMM_A5 未知空 3 DIMM_A6 未知空 4 DIMM_A7 未知空 4 DIMM_A8 未知空 5 DIMM_A9 未知正在使用 5 DIMM_B1 未知正在使用 6 DIMM_B2 未知空 6 DIMM_B3 未知正在使用 4 DIMM_B4 未知正在使用 5 DIMM_B5 未知空 6 DIMM_B6 未知空 4 DIMM_B7 未知空 5 DIMM_B8 未知空 6 DIMM_B9 ==== 板载设备 ======================================= 嵌入式 Matrox G200 视频 嵌入式 Broadcom 5709C NIC 1 嵌入式 Broadcom 5709C 网卡 2 嵌入式 Broadcom 5709C NIC 3 嵌入式 Broadcom 5709C 网卡 4 集成 RAID 控制器 ==== 可升级插槽 ======================================= ID 状态类型描述 --- --------- ---------------- ---------------------------- 1 个可用 未知 PCI1 2 可用 未知 PCI2 3 正在使用 未知 PCI3 4 可用 未知 PCI4 #prstat -a PID 用户名 大小 RSS 状态 优先级 时间 CPU 进程/NLWP 21369 根 3888K 3036K cpu10 59 0 0:00:00 0.0% prstat/1 1529 根 67M 10M 睡眠 59 0 0:11:22 0.0% mix_applet2/1 21234 100 45G 3686M 睡眠 59 0 0:00:17 0.0%mysqld/25 902 根 12M 9848K 睡眠 59 0 0:04:35 0.0% gconfd-2/1 644 根 45M 29M 睡眠 59 0 0:02:39 0.0%Xorg/1 642 根 2560K 764K 睡眠 59 0 0:00:00 0.0% fbconsole/1 640 根 5704K 1408K 睡眠 59 0 0:00:00 0.0% dtlogin/1 863 根 4872K 1968K 睡眠 59 0 0:00:00 0.0% sdt_shell/1 2438 根 1432K 832K 睡眠 59 0 0:00:00 0.0% sh/1 2436 根 2644K 1392K 睡眠 59 0 0:00:00 0.0% gnome-pty-helpe/1 883 根 1532K 892K 睡眠 59 0 0:00:00 0.0%Xsession2.jds/1 2435 root 73M 14M 睡眠 49 0 0:00:18 0.0% gnome-terminal/2 789 根 1568K 940K 睡眠 59 0 0:00:00 0.0%Xsession/1 783 smmsp 9452K 2120K 睡眠 59 0 0:00:00 0.0% 发送邮件/1 864 根 3228K 836K 睡眠 59 0 0:00:00 0.0% dsdm/1 435 根 2064K 940K 睡眠 59 0 0:00:00 0.0% smcboot/1 436 根 2064K 684K 睡眠 59 0 0:00:00 0.0% smcboot/1 402 根 1432K 624K 睡眠 59 0 0:00:00 0.0% utmpd/1 866 根 1456K 840K 睡眠 59 0 0:00:00 0.0% sh/1 437 根 2064K 684K 睡眠 59 0 0:00:00 0.0% smcboot/1 407 root 3988K 1936K 睡眠 59 0 0:00:00 0.0% syslogd/11 630 根 3256K 2260K 睡眠 59 0 0:00:00 0.0% vold/5 2497 根 11M 7392K 睡眠 59 0 0:00:04 0.0% nscd/23 22200 根 3876K 1568K 睡眠 59 0 0:00:00 0.0% syslogd/13 399 根 7996K 3996K 睡眠 59 0 0:00:01 0.0% inetd/4 415 根 2468K 1372K 睡眠 59 0 0:00:00 0.0% ttymon/1 404 根 2504K 1276K 睡眠 59 0 0:00:00 0.0% ttymon/1 295 守护进程 2932K 1432K 睡眠 59 0 0:00:00 0.0% rpcbind/1 142 根 5452K 2184K 睡眠 59 0 0:00:00 0.0% syseventd/15 224 根 2824K 1080K 睡眠 59 0 0:00:00 0.0% cron/1 156 根 4344K 3164K 睡眠 59 0 0:00:00 0.0% picld/9 387 根 18M 14M 睡眠 59 0 0:00:02 0.0% fmd/19 152 守护进程 4612K 2684K 睡眠 59 0 0:00:00 0.0% kcfd/4 397 根 2132K 1040K 睡眠 59 0 0:00:00 0.0% sac/1 19861 根 5864K 3720K 睡眠 59 0 0:00:00 0.0%zlogin/1 204 根 2244K 780K 睡眠 59 0 0:00:00 0.0% iscsi 启动器/2 2498 守护进程 2716K 1676K 睡眠 59 0 0:00:00 0.0% statd/1 369 根 2528K 1292K 睡眠 59 0 0:00:03 0.0% in.routed/1 77 根 6148K 3484K 睡眠 59 0 0:00:02 0.0% devfsadm/9 1923 根 165M 57M 睡眠 59 0 0:03:51 0.0% java/34 669 根 6600K 2912K 睡眠 59 0 0:00:00 0.0% dtlogin/1 11 根 12M 11M 睡眠 59 0 0:00:08 0.0% svc.configd/16 NPROC 用户名 交换 RSS 内存 时间 CPU 91 根 423M 425M 0.6% 0:34:57 0.0% 1 100 45G 3703M 5.7% 0:00:17 0.0% 2 无访问 251M 237M 0.4% 0:04:28 0.0% 2 smmsp 3804K 16M 0.0% 0:00:00 0.0% 10 守护进程 10M 14M 0.0% 0:00:00 0.0% # 回显 ::memstat | mdb -k 页面摘要 页数 MB %Tot ------------ ---------------- ---------------- ---- 内核 646470 2525 4% ZFS 文件数据 1920208 7500 11% 匿名 1078294 4212 6% 执行和库 14431 56 0% 页面缓存 2544 9 0% 可用(缓存列表)13012 50 0% 免费(免费列表) 13096905 51159 78% 总计 16771864 65515 实物 16324293 63766
答案1
能否粘贴以下内容
prtdiag -v
prstat -a
答案2
根据 ::memstat 输出,ZFS 占用了 7.5GB 的物理内存。使用 ZFS 时要小心:它通常过于激进,会导致系统其余部分内存不足。实际上,它根本不会在您希望的时候释放内存。
查看ZFS 最佳实践指南有关如何限制 ARC 大小以缓解此问题的详细信息。
答案3
mysql 可以分配的内存有项目限制吗?
prctl -i project default
或者,不是‘默认’,而是 mysql 运行下的项目?