Questions tagged «memory»

当在数据库环境中使用时,内存是指CPU可以直接寻址的RAM,而不是通过I / O子系统。

4
SQL Server最大内存不限制对RAM的使用
我希望您对此提供意见。我有一个sql server 2008r2 Ent。埃德 具有16个内核和64GB RAM的64位。截至20111014,有一个完全修补的SQL Server实例。 最大ram设置为60000MB。在线几天后,根据任务管理器,免费ram的数量为0。 如果我将最大RAM更改为低于53GB,几天后它将稳定下来并有一些可用RAM。 是sql进程根据任务管理器分配ram。我该如何解决真正的问题?不用说,我已经做了很多测试,但是还没有按照我的喜好解决。当可用的内存降低到0时,我们不会得到典型的内存短缺。 更新1: 受到此页面上与RAM相关的另一个问题的启发,网址为/dba//a/7062/2744。我用这两个来查看RAM的用途。 SELECT TOP ( 10 ) [type] AS [Memory Clerk Type] , SUM(single_pages_kb) AS [SPA Mem, Kb] FROM sys.dm_os_memory_clerks GROUP BY [type] ORDER BY SUM(single_pages_kb) DESC OPTION ( RECOMPILE ) ; SELECT DB_NAME(database_id) AS [Database Name] , COUNT(*) * …

1
操作员在执行溢出级别2的过程中使用tempdb溢出数据
我正在努力通过警告Operator usedtempdb 将查询计划上的排序操作的成本降至最低to spill data during execution with spill level 2 我发现有几个与泄漏级别为1的执行过程中的泄漏数据有关的帖子,但与级别2无关,而级别1似乎是由于过时的统计信息引起的,级别2呢?我找不到与关联的任何内容level 2。 我发现本文与排序警告有关非常有趣: 永不忽略SQL Server中的排序警告 我的SQL Server? Microsoft SQL Server 2014(SP2)(KB3171021)-12.0.5000.0(X64)2016年6月17日19:14:09版权所有(c)Windows NT 6.3(Build 9600:)上的Microsoft Corporation Enterprise Edition(64位)(系统管理程序) 我的硬件? 运行下面的查询以查找硬件: -来自SQL Server 2012的硬件信息 SELECT cpu_count AS [Logical CPU Count], hyperthread_ratio AS [Hyperthread Ratio], cpu_count/hyperthread_ratio AS [Physical CPU Count], physical_memory_kb/1024 AS …

2
当SQL Server没有可用的物理内存时会发生什么?
在进行谷歌搜索时,我发现了一些相互矛盾的信息。 一些站点指出,当没有物理内存可用于数据时,SQL Server会将已存在的数据移至TEMPDB中(请参阅:SQL Server:使TempDb神秘化和建议)。 但是其他站点指出,当剩余的物理内存不足时,操作系统可以使用PAGE FILE并将数据从物理内存移至该页面(请参阅SQL Server的页面文件)。 我想知道当SQL Server的物理内存用尽时,它将在哪里写入数据?要tempdb还是OS页面文件?还是两者都可以?

2
快速查看为SQL Server分配了多少RAM?
使用SQL Server 2005,您可以查看任务管理器,至少可以粗略地了解为SQL Server分配了多少内存。 使用SQL Server 2008,即使SQLServer:Memory Manager /总服务器内存(KB)性能计数器的状态为16,732,760,工作集或提交大小也不会真正超过500 MB。 是否有设置可以在任务管理器中实际显示服务器内存?还是它们更改了SQL Server中内存使用方式的结果

2
DBCC FREEPROCCACHE或DBCC FREESYSTEMCACHE('SQL Plans')都不执行任何操作来释放CACHESTORE_SQLCP内存
CACHESTORE_SQLCP几天后,SQL计划占用超过38 GB的内存。 我们已经在运行“优化临时工作负载”选项。(实体框架和自定义报告会产生很多特殊条件!) 具有多可用区镜像的AWS RDS上的SQL Server 2016 SE 3.00.2164.0.v1 当我跑步时: DBCC FREESYSTEMCACHE('SQL Plans'); 要么 DBCC FREEPROCCACHE 要么 DBCC FREESYSTEMCACHE ('SQL Plans') WITH MARK_IN_USE_FOR_REMOVAL 要么 DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL; 它似乎无法清除: SELECT TOP 1 type, name, pages_kb FROM sys.dm_os_memory_clerks ORDER BY pages_kb desc type name pages_kb CACHESTORE_SQLCP SQL Plans 38321048 我在启用查询存储的情况下运行,但是我禁用了它以查看是否有任何干扰,这似乎没有帮助,但我将其保留了下来。 …

3
如果我不删除临时内存表,该表将保留多长时间(MySQL)
我在MySQL中使用递归存储过程来生成名为的临时表id_list,但我必须在后续的select查询中使用该过程的结果,因此无法DROP在该过程中使用该临时表... BEGIN; /* generates the temporary table of ID's */ CALL fetch_inheritance_groups('abc123',0); /* uses the results of the stored procedure in the WHERE */ SELECT a.User_ID FROM usr_relationships r INNER JOIN usr_accts a ON a.User_ID = r.User_ID WHERE r.Group_ID = 'abc123' OR r.Group_ID IN (SELECT * FROM id_list) GROUP BY …

2
为什么MySQL在磁盘上创建了这么多临时表?
任何配置错误都能导致mysql..mysql调谐器显示创建过多的临时表吗 Current max_heap_table_size = 200 M Current tmp_table_size = 200 M Of 17158 temp tables, 30% were created on disk table_open_cache = 125 tables table_definition_cache = 256 tables You have a total of 97 tables You have 125 open tables. Current table_cache hit rate is 3% 较早的临时表是“在23725个临时表中,有38%是在磁盘上创建的”,但我将max_heap和tmp_table从16m更改为200m,并将其降低到30%。 组态: engine myisam …
13 mysql  innodb  myisam  memory 

1
PostgreSQL抱怨共享内存,但是共享内存似乎还可以
我一直在通过PostgreSQL服务器进行密集的模式删除和创建,但是现在抱怨..: WARNING: out of shared memory ERROR: out of shared memory HINT: You might need to increase max_locks_per_transaction. 但是问题仍然存在,如果PostgreSQL仅用重新启动service postgresql restart,我怀疑max_locks_per_transaction不会进行任何调整。 我有点疏远,因为此错误的故障排除列表对我不起作用。 更多信息1409291350:缺少一些细节,但我保留了核心SQL结果。 postgres=# SELECT version(); PostgreSQL 9.3.5 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 64-bit 和: $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: …

3
如何查看SQL Server 2008中的内存中缓存了什么?
有没有一种方法可以找出SQL Server 2008 R2中缓存的内容?我找到了以下不错的文章:http : //blog.sqlauthority.com/2010/06/17/sql-server-data-pages-in-buffer-pool-data-stored-in-memory-cache。但是,我想知道每个表和索引存储了多少数据(例如百分比和KB)。是否有一些简单的方法来获取此类数据?

3
SQL Server 2008 R2“虚拟内存”?
我们有一台专用的SQL Server 2008 R2计算机,它遇到一些奇怪的内存问题。该计算机本身具有大量资源,包括两个四核处理器,16GB RAM和64位Windows Server 2008 R2 Enterprise(它是Dell PowerEdge 2950) 。 奇怪的问题是系统报告正在使用的内存为82%,而sqlservr.exe仅报告了使用的内存为155mb。我怀疑SQL Server是问题的原因是因为如果重新启动sqlservr.exe进程,则一段时间内内存消耗将恢复正常。 有人对我如何开始追踪此问题有任何想法吗? 谢谢,杰森

2
Redis占用了所有内存和崩溃
Redis服务器v2.8.4在具有8 GB RAM和16 GB交换空间(在SSD上)的Ubuntu 14.04 VPS上运行。但是,htop表明redis独自占用了22.4 G内存! redis-server最终由于内存不足而崩溃。Mem并且Swp两个命中率均达到100%,然后redis-server与其他服务一起被杀死。 来自dmesg: [165578.047682] Out of memory: Kill process 10155 (redis-server) score 834 or sacrifice child [165578.047896] Killed process 10155 (redis-server) total-vm:31038376kB, anon-rss:5636092kB, file-rss:0kB redis-server从其他方面重新启动可能service redis-server force-reload会导致OOM崩溃或导致内存使用量降至<100MB。 问题:为什么在redis-server崩溃之前会占用越来越多的内存?我们如何防止这种情况? 是真的,maxmemory因为redis达到maxmemory极限后,设置将无法删除,因此设置将无法工作吗? 重启redis-server后 Redis版本: Redis server v=2.8.4 sha=00000000:0 malloc=jemalloc-3.4.1 bits=64 build=a44a05d76f06a5d9 更新资料 当htop报告的内存使用量redis-server是4.4G RAM和22.6G交换,所有的钥匙,redis的占用的空间量仅为60.59636307 MB,所报告的rdbtools。这也是redis-server重启后立即占用的RAM量。 INFO ALL什么时候redis-server占用大量内存 …

2
如何在SQL Server内存和SQL Server Analysis Services内存之间取得平衡
我们有许多配置相同的系统 一台服务器(虚拟或物理) 运行SQL Server(SQL)和SQL Server Analysis Server(AS) 多核 16GB RAM 每天晚上,SQL Server将进行大约2-3个小时的处理,然后进行2-3个小时的AS处理。然后,整天只查询AS。 假设这是一台专用服务器,没有其他应用程序值得关注,并且两组处理是完全同步的-彼此之间始终没有重叠-我该如何最好地设置SQL和AS服务器的内存限制。 问的原因是,如果我不为SQL设置限制,它将获取所有可以使用的内存。但是-我的理解是,在以下情况下,SQL会很乐意放弃该内存: 它没有使用它 另一个服务/程序请求它。 因此,从逻辑角度来看,我相信允许SQL采取所需的一切,但我对AS'不太确定TotalMemoryLimit。我不确定AS是否会放弃它的内存。实际上,阅读更多使我相信,让一切全部使用是错误的。 这是否意味着我实际上需要为两者设置限制?我对最佳实践应该是什么以及在考虑过程不重叠的情况下我们需要衡量的问题感到困惑。 希望这是有道理的。

2
MongoDB在内存不足时终止
我有以下配置: 运行三个Docker容器的主机: MongoDB 雷迪斯 一个使用前两个容器存储数据的程序 Redis和MongoDB都用于存储大量数据。我知道Redis需要将其所有数据保留在RAM中,对此我很好。不幸的是,发生的事情是mongo开始占用大量RAM,并且一旦主机RAM已满(我们在这里谈论32GB),mongo或Redis就会崩溃。 我已阅读以下有关此问题的问题: 限制MongoDB RAM的使用:显然,大多数RAM被WiredTiger缓存用尽 MongoDB限制内存:显然这里的问题是日志数据 限制MongoDB中的RAM内存使用量:在这里,他们建议限制mongo的内存,以便它的缓存/日志/数据使用较少的内存 MongoDB使用了过多的内存:在这里,他们说这是WiredTiger缓存系统,该系统倾向于使用尽可能多的RAM以提供更快的访问速度。他们还说it's completely okay to limit the WiredTiger cache size, since it handles I/O operations pretty efficiently 是否有任何限制mongodb内存使用的选项?:再次缓存,它们也添加MongoDB uses the LRU (Least Recently Used) cache algorithm to determine which "pages" to release, you will find some more information in these …

2
查看Postgresql内存使用情况
我在Ubuntu服务器上运行Postgresql,需要能够监视其内存使用情况。目前,我有一个脚本在一分钟的cron作业中运行,以监视/记录各种统计信息,并且还需要监视/记录Postgresql的当前内存使用情况。我已经四处搜寻,但找不到很多东西,除了Postgresql善用共享内存,这样的程序(例如“ top”)给出的值并不准确。 如何在任何给定时间监视Postgresql的总内存使用量?以后将使用这些数据来创建图形进行分析。

3
在缓冲区缓存中没有足够空间的情况下,SQL Server如何处理查询的数据?
我的问题是,SQL Server如何处理需要将比可用空间更多的数据拉入缓冲区缓存的查询?该查询将包含多个联接,因此结果集在磁盘上已经不存在该格式的结果,因此需要编译结果。但是即使在编译之后,它仍然需要比缓冲区高速缓存中可用空间更多的空间。 我举一个例子。假设您有一个SQL Server实例,总共有6GB的可用缓冲区高速缓存空间。我运行具有多个联接的查询,该联接读取7GB数据,SQL Server如何响应此请求?是否将数据临时存储在tempdb中?它会失败吗?它是否仅执行一次从磁盘读取数据并一次编译段的操作? 此外,如果我尝试返回7GB的总数据会发生什么,这是否会改变SQL Server的处理方式? 我已经知道解决此问题的几种方法,我很好奇SQL Server在按要求运行时如何在内部处理此请求。 另外,我确定此信息存在于某处,但我一直没有找到它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.