Questions tagged «memory»

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

2
SQL Server不使用所有内存
我有SQL Server 2014,最大内存设置为6GB(物理内存为8GB)。 在目标服务器内存为6GB,有时,然后回落到总的服务器内存(约5.3GB,从未达到6GB)。我用committed_kb在sys.dm_os_sys_info检查SQL Server所使用的内存。 当我监视sys.dm_os_buffer_descriptors时,我看到页面已从缓存中删除-但仍然有700MB的内存。如果什么都不需要内存,您将如何解释从缓存中删除页面的事实?我希望SQL Server仅在需要内存时才删除页面。 在此服务器上,解除分配的临时表不是问题。我的PLE是3632。过程高速缓存是2182 MB。 我希望只有没有可用的内存时,页面才会被丢弃,但是我有700MB的可用空间,还是我误会了这一点? 有人可以尝试解释这种行为吗? SQL Server也在从磁盘读取数据,因此我想我可以得出结论,并非所有需要的页面都在内存中。 我进行了一些进一步的研究,并从磁盘将大量页面读取到内存中,并在读取过程中注意到taskmanager中的某些内容: 正在使用的内存从7.0GB-> 7.2GB-> 7.0GB-> 7.2GB-> ... Sqlservr.exe从5.3GB-> 5.5GB-> 5.3GB-> 5.5GB-> ... 就像Windows不允许sqlservr.exe增长到6GB一样。 我运行了Shanky提供的查询: select (physical_memory_in_use_kb/1024) Physical_Memory_usedby_Sqlserver_MB, (locked_page_allocations_kb/1024 )Locked_pages_used_Sqlserver_MB, (Virtual_address_committed_kb/1024 )Total_Memory_in_MB,--RAM+ Pagefile process_physical_memory_low, process_virtual_memory_low from sys. dm_os_process_memory 得到以下结果: Physical_Memory_usedby_Sqlserver_MB: 5247 Locked_pages_used_Sqlserver_MB: 0 Total_Memory_in_MB: 5625 process_physical_memory_low: 0 process_virtual_memory_low: 0 …

3
为SQL Server和NUMA配置RAM
偶然的数据库管理员在这里。 题: 即使该服务器的唯一目的仅是为SQL Server数据库引擎提供服务,您是否仍会手动限制SQL Server的最大RAM? 我有Microsoft Windows 2012 R2 Server,SQL Server 2012 Std,32GB RAM。 管理员不断登录到SQL Server,以使用其控制台和所有控制台。 其次,如何检查此Windows服务器是否启用了NUMA?

3
SQL BULK插入/ BCP导出后未释放使用的内存
我创建了一个非常基本的SQL表,如下所示 CREATE TABLE [dbo].[TickData]( [Date] [varchar](12) NULL, [Time] [varchar](12) NOT NULL, [Symbol] [varchar](12) NOT NULL, [Side] [varchar](2) NOT NULL, [Depth] [varchar](2) NOT NULL, [Quote] [varchar](12) NOT NULL, [Size] [varchar](18) NOT NULL ) ON [PRIMARY] 然后,我执行了3 Gig批量插入 BULK INSERT TickData FROM 'C:\SUMO.csv' GO 然后SQL Server的RAM使用量激增,吞噬了约30Go的RAM: 我更倾向于认为这是一种异常行为,可以采取措施避免这种情况。 编辑: 好的,这似乎是默认行为。很公平。 但是,为什么在大容量插入完成后很长时间没有释放内存? 几个额外的考虑因素: 关于SQL …

3
如何在InnoDB引擎中使用插入延迟,并减少插入语句的连接?
我正在开发一个涉及大量数据库写入,大约70%插入和30%读取的应用程序。这个比率还将包括我认为是一次读取和一次写入的更新。通过插入语句,多个客户端通过以下插入语句将数据插入数据库: $mysqli->prepare("INSERT INTO `track` (user, uniq_name, ad_name, ad_delay_time ) values (?, ?, ?, ?)"); 问题是我应该使用insert_delay还是使用mysqli_multi_query机制,因为insert语句使用服务器上的〜100%cpu。我在数据库上使用InnoDB引擎,因此无法进行延迟插入。在服务器上的插入速度为〜36k / hr,读取率为99.89%,我也使用select语句在单个查询中检索了7次数据,该查询在服务器上执行需要150秒。我可以使用哪种技术或机制执行此任务?我的服务器内存为2 GB,我应该扩展内存吗?看看这个问题,任何建议都会感激我。 表的结构: +-----------------+--------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+--------------+------+-----+-------------------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | user | …

2
缓冲池外的SQL Server 2012内存消耗
我有一个SQL Server 2012 SP2 Enterprise Edition实例,比最大内存消耗约20GB的内存。内存限制。该实例限制为65GB,但以下查询显示的正在使用的物理内存为86GB SELECT (physical_memory_in_use_kb/1024)/1024 AS [PhysicalMemInUseGB] FROM sys.dm_os_process_memory; GO 该服务器是物理服务器,具有2个NUMA节点。有没有一种方法可以找出正在消耗缓冲池之外的内存的原因(我假设这是正在发生的事情)? 这是DBCC MEMORYSTATUS的输出: 这是设置的内存限制: 提前致谢。 更新:-我已经运行了亚伦建议的查询 SELECT TOP (20) * FROM sys.dm_os_memory_clerks ORDER BY pages_kb DESC 这是输出:- pages_kb的总和约为60GB 更新2:-DBCC MEMORYSTATUS的完整输出在这里:-http: //pastebin.com/nGn6kXEc 更新3: - Shanky在这里的Excel文件的脚本输出: - http://jmp.sh/LKRlH4K 更新4:-输出的屏幕截图:- SELECT (physical_memory_in_use_kb/1024)/1024 AS [PhysicalMemInUseGB] FROM sys.dm_os_process_memory; GO 因此,这似乎表明SQL Server使用的内存大于65GB。


2
SQL Server的最大内存包括SSIS?
我在以下服务器上安装了2个sql服务器实例以及SSIS。 请注意,RAM的容量接近384 GB 这是我已应用于两个实例的最大和最小内存设置。我假设两个实例都将使用相同数量的资源,如果确实如此,那么184,320 MB(180 GB)是设置内存的一个很好的起点吗? 我将为SSIS分配多少内存?

2
Page Life Expectancy对实例有何看法?
我已经在环境中的一些SQL Server实例上安装了监视软件。我正在尝试查找瓶颈并解决一些性能问题。我想找出某些服务器是否需要更多内存。 我对一个计数器感兴趣:页面预期寿命。在每台机器上看起来都不同。为什么在某些情况下经常更改,这意味着什么? 请查看上周在不同计算机上收集的数据。您能对每个实例说些什么? 大量使用的生产实例(1): 适度使用的生产方式(2) 很少使用的测试实例(3) 大量使用的生产实例(4) 中度使用的测试实例(5) 大量使用的数据仓库(6) 编辑:我为所有这些服务器添加SELECT @@ VERSION的输出: Instance 1: Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) Instance 2: Microsoft SQL …

2
增加的RAM,性能更差
设定: Windows Server 2008 R2 SQL Server 2008 R2 SP1 240GB RAM TempDB是8x16GB数据文件,没有自动增长(总共128GB) 物理/独立服务器 该服务器用于ETL处理。我们刚刚在此服务器上安装了更多RAM,总共有240GB RAM。SQL Server服务是唯一可运行的东西。 内存在BIOS,OpenManage和Windows中显示正常。 如果我将SQL Server配置为使用最小/最大70 / 100GB内存,则没有问题。但是,一旦将其增加到120 / 150GB,则在运行我们的ETL进程之一时会出现以下错误: 无法为数据库“ tempdb”中的对象“ <临时系统对象:422234507706368>”分配空间,因为“ PRIMARY”文件组已满。通过删除不需要的文件,在文件组中删除对象,向文件组添加其他文件或为文件组中的现有文件设置自动增长来创建磁盘空间。(消息1105,状态2,过程未知,第1行) 在更改内存配置之前,我们从未遇到过此问题。重新配置回原始的70 / 100GB后,我们不会收到此错误。 我尝试过的事情: 将TempDB数据文件设置为自动增长。这只会导致文件自动增长,直到达到磁盘容量,然后失败。 添加更多的TempDB数据文件。与显示的错误相同。 将TempDB的大小增加到8x32GB(总共256GB) 我对可能导致此问题的原因不知所措。

1
MongoDB没有使用所有可用的RAM
我在mongo集群中存储了大约200 GB的数据。运行mongo的实例之一上的物理内存为8GB。没有任何其他后果在此实例上运行。据我所知,根据Mongo的文档(例如:http : //www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage),这意味着mongod进程应使用约100%的可用的物理内存。但是,如果您查看top命令的以下输出,您会发现mongod实例仅使用2GB的常驻内存,并且有2GB的可用物理内存完全可用,根本没有使用。 有人可以向我解释这种行为吗?为什么会有2GB的可用内存? top 输出: top - 23:19:43 up 89 days, 20:05, 2 users, load average: 0.41, 0.55, 0.59 Tasks: 101 total, 1 running, 100 sleeping, 0 stopped, 0 zombie Cpu(s): 2.0%us, 1.3%sy, 0.0%ni, 93.9%id, 2.6%wa, 0.0%hi, 0.1%si, 0.0%st Mem: 8163664k total, 6131764k used, 2031900k free, 54976k buffers …
9 mongodb  memory 

3
如何释放SQL Server内存?
我在本地计算机上安装了SQL Server沙箱。我已将SQL Server实例可以使用的内存设置为1000 mb。运行密集型操作时,内存使用量会上升到1000 mb。操作结束后,SQL Server仍在保留内存。如何释放此内存保留?

3
我正在使用MEMORY存储引擎,但MySQL仍会写入磁盘...为什么?
我正在使用MEMORY Engine与特定MYSQL查询关联的所有表,因为访问速度对我的项目至关重要。 由于某种原因,我注意到仍然发生大量磁盘写入。 这是因为Windows将RAM交换到磁盘上吗?如何防止这种情况发生? 编辑:这是我的全局变量: mysql> show global variables; +---------------------------------------------------+-------------------------------------------------------------------------------- ------------------------------+ | Variable_name | Value | +---------------------------------------------------+-------------------------------------------------------------------------------- ------------------------------+ | auto_increment_increment | 1 | | auto_increment_offset | 1 | | autocommit | ON | | automatic_sp_privileges | ON | | back_log | 50 | | basedir | C:/Program Files/MySQL/MySQL Server 5.5/ …

4
为什么MySQL会说我内存不足?
我试图INSERT...SELECT用JDBC在MySQL中执行相当大的操作,但出现以下异常: Exception in thread "main" java.sql.SQLException: Out of memory (Needed 1073741824 bytes) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) 由于我实际上没有返回ResultSet对象,因此我认为Java堆空间应该不是问题。但是,无论如何,我都尝试将其调高,但效果不好。然后,我尝试在MySQL Workbench中执行该语句,并且得到了基本上相同的东西: Error Code 5: Out of memory (Needed 1073741816 bytes) 我应该有足够的RAM来完成这些操作(足以容纳要从中选择的整个表),但是我猜测我需要调整各种设置以利用我的所有内存。我正在使用Windows Server 2008 AMI 运行Amazon EC2 高内存双超大实例。我尝试摆弄my.ini文件以使用更好的设置,但就我所知,我可能会使情况变得更糟。这是该文件的转储: [client] port=3306 [mysql] default-character-set=latin1 [mysqld] port=3306 basedir="C:/Program Files/MySQL/MySQL Server 5.5/" datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/" character-set-server=latin1 default-storage-engine=INNODB sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" max_connections=100 query_cache_size=1024M …

1
SQL每隔几分钟就会从缓冲区缓存中转储所有页面
我有一个运行多个数据库的SQL2012 SP4节点。 该服务器有20GB可用内存,已为SQL分配了14GB内存(包装盒上没有其他任何东西)。 SQL每隔几分钟就会转储整个缓冲区高速缓存。页面预期寿命为零,缓冲区高速缓存描述符显示高速缓存中没有任何内容。 我查看了资源监视器通知,并且通知每隔几毫秒从高/稳定/低反弹一次: RESOURCE_MEMPHYSICAL_LOW RESOURCE_MEM_STEADY RESOURCE_MEMPHYSICAL_LOW 时间戳相隔几毫秒。PLE本质上是锯齿形。 我已经在SQL2012 SP1和以下问题之前看到过这种情况: 未使用缓冲区高速缓存中的SQL Server 2012可用页 似乎是类似的问题,尽管我已经更新到SP4。 我尝试为该服务帐户打开LPIM,并且尝试弄乱最大内存设置。降低最大内存似乎已导致缓冲区缓存更频繁地清空。 关于下一步要检查的任何想法? 服务器工作负载实际上什么都没有(我正在滚动浏览ERP系统中的项目列表,在缓存再次下降之前,它达到了40-50MB)。 这很有趣,因为我从SP1升级以尝试解决此问题-那里的缓存已达到500MB左右。从那以后,我将最大内存设置降低到14GB,这似乎使情况变得更糟。 我想知道Windows是否惊慌并在SQL上发出有关内存压力的不正确通知-随之而来的是,将最大内存设置为无界的服务器似乎运行正常,但永远不会填满超过几百MB的缓存-但现在它刚到50岁... 更多信息:对于那些询问 核心数: 4 数据库大小: 80GB 错误日志显示: A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: 0 seconds. Working set …

1
一个表占用多少内存?
有没有办法找出一个表在SQL Server(2005及更高版本)中占用了多少内存? 例如,假设我有一个包含3000万条记录的表。我想知道缓冲区高速缓存中当前有多少个属于此表的页面,包括索引,数据和文本/图像页面。 我是通过Pinal Dave找到此查询的,但似乎此查询仅返回按索引分配的页面(无论是聚集的还是未聚集的页面)。

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.