最近,我注意到即使 Management Studio 没有运行,SQL Server 也消耗了太多内存。它消耗多达 500,000K 的内存。我知道 SQL Server 实例必须运行但有这么多内存?
我能做些什么来解决这个问题吗?
我有一个可怜的人 vps - 256MB 专用内存。我已经安装了 LAMP。服务器上目前还没有网站处于 UP 状态。
内存使用量仍然是 225MB(只有 31MB 可用)。
我已经使用 top 和另一种方法进行了测量。Top 说使用了大约 225mb,但如果我总结这些过程,它只有 20%。
我用来测量内存的另一个脚本:
#!/bin/bash
bean=`cat /proc/user_beancounters`
guar=`echo "$bean" | grep vmguar | awk '{ print $4;}'`
priv=`echo "$bean" | grep privvm | awk '{ print $2;}'`
let totl=guar/256
let used=priv/256
let free=$totl-$used
echo "VPS Memory:"
echo " total: $totl mb used: $used mb free: $free mb"
Run Code Online (Sandbox Code Playgroud)
给出相同的结果(使用 225MB)。
我已经重新启动了服务器,但仍然使用了 225MB 内存。我怎样才能找到罪魁祸首的过程。请帮忙!
============
ps efax -o command,vsize,rss,%mem,size 的输出表明只有 20% (aournd 50MB) 被进程实际使用。
(由于内存不足,apt-get install imagemagick …
我有一个 SQL Server 2008(10.0.1600 版),它运行在具有 8 GB 物理内存的 Windows Server 2008 R2 Enterprise 服务器上。如果我打开任务管理器,我可以在“性能”选项卡的“物理内存”部分看到只有 340 MB 可用,总计 8191,但我看不到任何使用如此数量内存的进程。请注意 SQL Server 的内存限制为 6GB(最大服务器内存 = 6000)。
如果我打开 Sysinternals Process Explorer,我可以看到sqlsrvr.exe进程有:
Private Bytes: 227.000 K
Working Set: 140.000 K
Virtual Size: 8.762.000 K
Run Code Online (Sandbox Code Playgroud)
这是什么意思?有没有办法为其他进程释放这些内存?为什么虚拟大小数字作为分配的内存?我认为虚拟大小只是“保留内存”。
我有一个具有以下配置的 LAMP 服务器。
CPU : Intel(R) Xeon(R) CPU
内存:32GB
硬盘:80 GB
在虚拟环境中运行。
服务器中的所有东西都运行得很顺利。但是我注意到 RAM 使用量是服务器每天都在无缘无故地增加。
这是我服务器上的当前内存使用情况。
# free -g
total used free shared buffers cached
Mem: 31 13 17 0 0 10
-/+ buffers/cache: 1 29
Swap: 2 0 2
Run Code Online (Sandbox Code Playgroud)
您可以在下面看到过去 8 周的内存使用情况。 http://i.stack.imgur.com/543jh.png
我执行了以下命令来查找每个进程消耗的内存量。
# ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }'
0.00 Mb COMMAND
2253.62 …Run Code Online (Sandbox Code Playgroud) 我们有一个 postgres 9.0 实例,它运行在一台非常强大的机器上(96G RAM/24 个内核)。最近几周,我们经历了由于 OOM 杀手因内存不足而杀死 postgres 子进程而导致的崩溃。似乎由于使用连接池,这些子进程寿命很长(这是有道理的,因为打开和关闭连接需要时间),问题是它们的内存消耗逐渐增长,甚至达到 9Gigs/进程。正如您可能想象的那样,拥有 10 个这样的内存就可以填满可用的内存,并且 oom-killer 就会启动。
问题是:
作为参考,可能影响内存的设置:
max_connections = 950
shared_buffers = 32MB
Run Code Online (Sandbox Code Playgroud)
所有其他设置都不会被覆盖,这意味着我们使用默认值。
我们的服务器可用内存总是很低。然而,顶级进程只占用了我们服务器上应该可用的一部分(具有10 GB内存)。
我跑去tasklist获取所有进程的列表,并将它们使用的内存总量加起来。总内存使用量为6GB,大约有1GB的内存“可用”。
除非我遗漏了什么,否则这意味着大约有 3GB 的缺口(10GB 总内存 - 使用了 6 GB - 1 GB“可用”)。
我想知道会发生什么。每隔一段时间,“空闲”内存就会下降到 0,此时我们会遇到速度变慢的情况。
我最近安装了一个全新的 CentOS 7.1 服务器。我注意到与 CentOS 6.7 的一些差异,我希望有一种方法可以恢复对某些事物的旧观点。
例如:
topTop 命令以不同方式显示数据。例如:
新顶视图:
top - 00:27:45 up 4:58, 1 user, load average: 0.08, 0.50, 0.89
Tasks: 155 total, 2 running, 153 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 1.1 sy, 0.0 ni, 98.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 4047624 total, 1938600 free, 853888 used, 1255136 buff/cache
KiB Swap: 4194300 total, 4194300 free, 0 used. 2860704 avail Mem
Run Code Online (Sandbox Code Playgroud)
旧顶视图:
top - 00:28:59 …Run Code Online (Sandbox Code Playgroud) 我有一个 Rocks 集群系统,带有 NAS,在 RAID 10 配置中使用 btrfs 文件系统。最近,我们一直面临“设备上没有剩余空间”错误,我最终发现元数据几乎完全用完。所以我希望执行平衡操作来解决这个问题。
我不清楚的是,在进行平衡操作时,我们的用户是否可以继续工作并访问他们在 nas 上的目录?平衡手册指出:
“文件系统的磁盘状态始终保持一致,因此意外中断(例如系统崩溃、重新启动)不会损坏文件系统。平衡操作的进度会暂时存储,并将在挂载时恢复,除非挂载选项指定了skip_balance。”
这让我认为数据块只有在该块的平衡完成后才会被重新分配,但我在任何地方都没有找到我的问题的明确答案:用户继续工作、在 nas 上读取/写入数据是否安全在平衡操作期间,或者是否有必要在此过程中使系统离线,这对于我们的 TB 数据可能需要数小时或数天的时间?
network-attached-storage outofmemoryerror memory-usage btrfs
我已经阅读了许多top内存使用问题,但我认为他们没有回答这个问题。
这是top运行中最重要的部分:
top - 01:11:41 up 4 days, 1:06, 3 users, load average: 0.00, 0.03, 0.26
Tasks: 86 total, 1 running, 84 sleeping, 0 stopped, 1 zombie
Cpu(s): 0.4%us, 0.4%sy, 0.0%ni, 99.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1022816k total, 986704k used, 36112k free, 11200k buffers
Swap: 1048572k total, 419088k used, 629484k free, 408172k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2022 django 20 0 463m 87m 688 S 0.4 8.7 …Run Code Online (Sandbox Code Playgroud) memory-usage ×10
linux ×3
top ×3
sql-server ×2
btrfs ×1
centos7 ×1
memory ×1
performance ×1
postgresql ×1
process ×1
systemd ×1
upgrade ×1
windows ×1