连接池的配置的数量是根据tomcat服务器内存来配置 还是根据系统硬件内存来配置?

连接池的配置的数量是根据tomcat服务器内存来配置 还是根据系统硬件内存来配置?,第1张

tomcat服务器里xml配置中有类似于占用系统资源最大值的设置,也就是比如系统硬件2G,tomcat最大值设置的是700MB,那么如果tomcat使用内存到701MB时,它就会按设置的,自动释放掉一些内存,来让自己用的内存低于700MB。机制就是这样的,具体哪几项您可以百度。

然后连接池里也有类似的选项,应该是有个缓存机制在里面,比如3个连接池,每个的占内存最大值都设置为300MB,TOMCAT依然是700MB的最大值,3个都占满300MB肯定是不可能了,所以TOMCAT会自动协调3个连接池的占内存,比如第1个占300,第2个占200,第3个占200,如果第2个突然要用300,TOMCAT可能就会释放第1个的100MB,来让总量低于700。

所以此问题应该是根据tomcat服务器内存最大值来配置 。

解释得还算详细吧 朋友 采纳吧~

如何优化内存的管理,提高内存的使用效率,尽可能地提高运行速度,是我们所关心的问题。下面介绍在Windows操作系统中,提高内存的使用效率和优化内存管理的几种方法。

  1改变页面文件的位置

  其目的主要是为了保持虚拟内存的连续性。因为硬盘读取数据是靠磁头在磁性物质上读取,页面文件放在磁盘上的不同区域,磁头就要跳来跳去,自然不利于提高效率。

  而且系统盘文件众多,虚拟内存肯定不连续,因此要将其放到其他盘上。改变页面文件位置的方法是:用鼠标右键点击“我的电脑”,选择“属性→高级→性能设置→高级→更改虚拟内存”,在驱动器栏里选择想要改变到的位置即可。

  值得注意的是,当移动好页面文件后,要将原来的文件删除(系统不会自动删除)。

  2改变页面文件的大小

  改变了页面文件的位置后,我们还可以对它的大小进行一些调整。调整时我们需要注意,不要将最大、最小页面文件设为等值。因为通常内存不会真正“塞满”,它会在内存储量到达一定程度时,自动将一部分暂时不用的数据放到硬盘中。最小页面文件越大,所占比例就低,执行的速度也就越慢。最大页面文件是极限值,有时打开很多程序,内存和最小页面文件都已“塞满”,就会自动溢出到最大页面文件。

  所以将两者设为等值是不合理的。一般情况下,最小页面文件设得小些,这样能在内存中尽可能存储更多数据,效率就越高。最大页面文件设得大些,以免出现“满员”的情况。

  3禁用页面文件

  当拥有了512MB以上的内存时,页面文件的作用将不再明显,因此我们可以将其禁用。方法是:依次进入注册表编辑器“HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession Ma-nagerMemoryManagement”下,在“DisablePa-ging Executive”(禁用页面文件)选项中将其值设为“1”即可。

  4清空页面文件

  在同一位置上有一个“ClearPageFileAtShutdown(关机时清除页面文件)”,将该值设为“1”。这里所说的“清除”页面文件并非是指从硬盘上完全删除pagefilesys文件,而是对其进行“清洗”和整理,从而为下次启动Windows XP时更好地利用虚拟内存做好准备。

  5调整高速缓存区域的大小

  可以在“计算机的主要用途”选项卡中设置系统利用高速缓存的比例(针对Windows 98)。如果系统的内存较多,可选择“网络服务器”,这样系统将用较多的内存作为高速缓存。在CD-ROM标签中,可以直接调节系统用多少内存作为CD-ROM光盘读写的高速缓存。

  6监视内存

  系统的内存不管有多大,总是会用完的。虽然有虚拟内存,但由于硬盘的读写速度无法与内存的速度相比,所以在使用内存时,就要时刻监视内存的使用情况。Windows操作系统中提供了一个系统监视器,可以监视内存的使用情况。一般如果只有60%的内存资源可用,这时你就要注意调整内存了,不然就会严重影响电脑的运行速度和系统性能。

  7及时释放内存空间

  如果你发现系统的内存不多了,就要注意释放内存。所谓释放内存,就是将驻留在内存中的数据从内存中释放出来。释放内存最简单有效的方法,就是重新启动计算机。

  另外,就是关闭暂时不用的程序。还有要注意剪贴板中如果存储了图像资料,是要占用大量内存空间的。这时只要剪贴几个字,就可以把内存中剪贴板上原有的冲掉,从而将它所占用的大量的内存释放出来。

  8优化内存中的数据

  在Windows中,驻留内存中的数据越多,就越要占用内存资源。所以,桌面上和任务栏中的快捷图标不要设置得太多。如果内存资源较为紧张,可以考虑尽量少用各种后台驻留的程序。平时在操作电脑时,不要打开太多的文件或窗口。

  长时间地使用计算机后,如果没有重新启动计算机,内存中的数据排列就有可能因为比较混乱,从而导致系统性能的下降。这时你就要考虑重新启动计算机。

  9提高系统其他部件的性能

  计算机其他部件的性能对内存的使用也有较大的影响,如总线类型、CPU、硬盘和显存等。如果显存太小,而显示的数据量很大,再多的内存也是不可能提高其运行速度和系统效率的。如果硬盘的速度太慢,则会严重影响整个系统的工作。

Oracle数据库可以自动内存管理SGA的,所以不用担心。具体可以参考一下,如有帮助请采纳。

ASMM自动共享内存管理:

自动根据工作量变化调整

最大程度地提高内存利用率

有助于消除内存不足的错误

SYS@PROD>show parameter sga

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

lock_sga boolean FALSE

pre_page_sga boolean FALSE

sga_max_size big integer 1G

sga_target big integer 1G

SYS@PROD>show parameter memory

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

hi_shared_memory_address integer 0

memory_max_target big integer 0

memory_target big integer 0

shared_memory_address integer 0

SYS@PROD>show parameter pga

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

pga_aggregate_target big integer 208M

ASMM 的工作原理 :

ASMM 以 MMON 在后台捕获的工作量信息为基础。

MMON 使用内存指导。

将内存移到 MMAN 最迫切需要的地方。

如果使用 SPFILE:在关闭时保存组件大小 、保存的值用于引导程序组件大小 、无需再确定最佳值

自动共享内存管理功能使用由以下两个后台进程实施的 SGA 内存中介:可管理性监视器 (MMON) 和内存管理器 (MMAN)。MMON 定期将统计信息和内存指导数据捕获到内存中。MMAN 根据 MMON 的决定调整内存组件的大小。SGA 内存中介会不断跟踪组件的大小和待处理的大小调整操作。

SGA 内存中介会观察系统和工作量,以便确定理想的内存分配方案。SGA 内存中介每隔几分钟就执行一次这种检查,使内存始终用在需要的地方。如果没有自动共享内存管理功能,必须分别预计各组件在峰值时的内存需求,然后对其内存大小进行调整。

在工作量信息基础上,自动共享内存管理功能会:

定期在后台捕获统计信息

使用内存指导

进行假设分析,确定最佳内存分配方案

将内存移到最迫切需要的地方

如果使用了 SPFILE,则在关闭时保存组件大小(这些大小可以在最后一次关闭前重新起用)

启用自动共享内存管理功能 :

要从手动共享内存管理模式下启用 ASMM,请执行以下操作:

1获取 SGA_TARGET 的值:

SELECT ((SELECT SUM(value) FROM V$SGA) - (SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY)) "SGA_TARGET" FROM DUAL;

2使用该值设置 SGA_TARGET。

3将自动设置大小的 SGA 组件的值设置为 0。

要从自动内存管理模式切换到 ASMM,请执行以下操作:

1将初始化参数 MEMORY_TARGET 设置为 0。

2将自动设置大小的 SGA 组件的值设置为 0。

自动优化的 SGA 参数的行为:

未设置 SGA_TARGET 或将其设置为 0 时:

自动优化的参数指定相应组件的实际大小

、可能需要增加 SHARED_POOL_SIZE

SELECT SUM(bytes)/1024/1024 size_mb FROM v$sgastat WHERE pool = 'shared pool';

SGA_TARGET 设置为非零值时:

自动优化的参数的默认值为零 、指定的值用作下限大小

SELECT component, current_size/1024/1024 size_mb FROM v$sga_dynamic_components;

手动优化的 SGA 参数的行为:

有些组件不能自动优化。

--DB_KEEP_CACHE_SIZE 和 DB_RECYCLE_CACHE_SIZE

--非标准块大小的缓冲区高速缓存,DB_nK_CACHE_SIZE

--

LOG_BUFFER

这些组件必须使用数据库参数手动配置。

这些组件使用的内存会减少可用于自动优化 SGA 的内存量。

修改 SGA_TARGET 参数 :

--是动态参数

--

最多可增大到 SGA_MAX_SIZE

--可以减小,直到所有组件都达到其下限大小为止

更改 SGA_TARGET 的值只会影响自动调整大小的组件

SGA_TARGET 是一个动态参数,可以通过 Database Control 或使用 ALTER SYSTEM 命令更改。

GA_MAX_SIZE 是可分配给 SGA 的内存量的上限。更改该值后,必须重新启动数据库才能生效。SGA_TARGET 最多可增大到 SGA_MAX_SIZE 值。它可以减小,直到任一自动优化的组件达到其下限大小:用户指定的下限值或内部确定的下限值。

如果增大 SGA_TARGET 的值,则会根据自动优化策略在自动优化的组件之间分配增加的那部分内存。

如果减小 SGA_TARGET 的值,则这部分内存将按照自动优化策略从一个或多个自动优化的组件处提取。

假定 SGA_MAX_SIZE 设置为 10 GB,SGA_TARGET 设置为 8 GB。如果 DB_KEEP_CACHE_SIZE 设置为 1 GB,并且将 SGA_TARGET 增大为 9 GB,则增加的 1 GB 只会在 SGA_TARGET 控制的组件之间进行分配。DB_KEEP_CACHE_SIZE 的值不受影响。同样,如果将 SGA_TARGET 减小到 7 GB,则这 1 GB 也只会从 SGA_TARGET 控制的那些组件中提取。这种减少并不会影响手动控制的参数(如 DB_KEEP_CACHE_SIZE)的设置。

禁用 ASMM :

将 SGA_TARGET 设置为 0 可禁用自动优化功能。

自动优化的参数设置为其当前大小。

SGA 大小总体上不受影响。

eg:

SGA_TARGET 的值为 8 GB,SHARED_POOL_SIZE 的值为 1 GB。如果系统将共享池组件的大小内部调整为 2 GB,则将 SGA_TARGET 设置为 0 会导致 SHARED_POOL_SIZE 被设置为 2 GB,从而覆盖用户定义的原始值。

手动调整动态 SGA 参数的大小

对于自动优化的参数,手动调整大小会:

导致组件大小立即调整(如果新值大于当前值) 、更改下限大小(如果新值小于当前大小)

调整手动优化的参数的大小只会影响 SGA 的可调部分。

调整了自动优化的参数的大小并设置了 SGA_TARGET 值后,只有当新值大于组件的当前大小时,这种调整才会导致组件的大小立即发生更改。例如,如果将 SGA_TARGET 设置为 8 GB,将 SHARED_POOL_SIZE 设置为 2 GB,可确保共享池始终不小于 2 GB,以满足必要的内存分配需求。之后,即使将 SHARED_POOL_SIZE 值调整为 1 GB,也不会对共享池的大小产生直接影响。只会使自动内存优化算法以后可以将共享池大小减少到 1 GB(如果需要)。相反,如果共享池的大小最初设置为 1 GB,那么将 SHARED_POOL_SIZE 值调整为 2 GB 时,共享池组件的大小会立即增加到 2 GB。此大小调整操作中使用的内存从一个或多个自动优化的组件中提取,手动优化的组件的大小不受影响。

手动调整大小的组件的参数也可以动态变更,但不同之处在于,参数的值会立即指定相应组件的精确大小。因此,如果手动调整的组件的大小增大,则增加的那部分内存将从一个或多个自动调整大小的组件处提取。如果手动调整的组件的大小减小,则释放的内存将会提供给自动调整大小的组件。

程序全局区 (PGA)

程序全局区 (PGA) 是包含某服务器进程的数据及控制信息的内存区。这是 Oracle 服务器在服务器进程启动时创建的非共享内存,只有该服务器进程才能访问。由关联到某个 Oracle 实例的所有服务器进程分配的 PGA 总内存,也称为该实例分配的聚集 PGA 内存。

使用共享服务器时,部分 PGA 可位于 SGA 中。

PGA 内存通常包含以下各项:

专用 SQL 区:

专用 SQL 区包含绑定信息和运行时内存结构等数据。这些信息是每个会话的 SQL 语句调用所特有的;在其它方面,绑定变量有不同的值,游标的状态也不同。发出 SQL 语句的每个会话都有一个专用 SQL 区。提交同一 SQL 语句的每个用户也都有其自己的专用 SQL 区,该专用 SQL 区使用一个共享 SQL 区。这样,许多专用 SQL 区可与同一个共享 SQL 区关联。专用 SQL 区的位置取决于为会话建立的连接类型。如果会话是通过专用服务器连接的,则专用 SQL 区位于该服务器进程的 PGA 中。不过,如果会话是通过共享服务器连接的,则部分专用 SQL 区将保留在 SGA 中。

游标和 SQL 区

Oracle ProC 程序或 Oracle OCI 程序的应用程序开发人员可以显式打开特定专用 SQL 区的游标或句柄,并在该程序的整个执行过程中将它们用作命名资源。数据库为某些 SQL 语句隐式发出的递归游标也使用共享 SQL 区。

工作区

对于复杂查询(例如,决策支持查询),会将大部分 PGA 供内存密集型运算符分配的工作区专用,例如:

基于排序的运算符(如 ORDER BY、GROUP BY 和 ROLLUP)和窗口函数

散列联接

位图合并

位图创建

批量装载操作使用的写缓冲区

排序运算符使用工作区(排序区),对一组行执行内存中排序。与此类似,散列联接运算符使用工作区(散列区),根据其左侧输入内容生成散列表。

工作区的大小是可以控制和优化的。通常,较大的工作区可以显著改进特定运算符的性能,不过代价是消耗较多的内存。

会话内存

会话内存是用于存放会话的变量(登录信息)以及与会话相关的其它信息的内存。对于共享服务器,会话内存是共享的,而不是专用的。

自动 PGA 内存管理

根据 PGA_AGGREGATE_TARGET 参数,动态调整供工作区专用的 PGA 内存量

有助于最大限度地提高所有内存密集型 SQL 操作的性能

默认情况下是启用的

PGA 管理资源

管理 PGA_AGGREGATE_TARGET 初始化参数的统计信息,如 PGA 高速缓存命中百分比

可以在下列动态性能视图中查看有关工作区内存分配和使用的统计信息:

V$SYSSTAT

V$SESSTAT

V$PGASTAT

V$SQL_WORKAREA

V$SQL_WORKAREA_ACTIVE

用于调整 PGA 工作区大小的视图有:

V$PGA_TARGET_ADVICE

V$PGA_TARGET_ADVICE_HISTOGRAM

V$SQL_WORKAREA_HISTOGRAM

-----------------Oracle DB 内存参数

ALTER SYSTEM SET MEMORY_TARGET=300M;

虽然仅需要设置 MEMORY_TARGET 来触发自动内存管理,但仍可以为各种高速缓存设置下限值。因此,如果子参数是用户设置的,则这些参数值将是 Oracle DB 服务器自动优化该组件时的下限值。

有效使用内存:准则

尽量使 SGA 适合物理内存。

优化以实现高缓冲区高速缓存命中率,但要注意以下几点:

--即使有效且必需的全表扫描也会降低命中率。

--可能存在因不必要地重复读取同一块而出现命中率虚升的情况。

使用内存指导。

库高速缓存的内存优化准则:提高命中率

为开发人员制定格式使用约定,以便 SQL 语句符合高速缓存的要求。

使用绑定变量。

消除不必要的重复 SQL。

考虑使用 CURSOR_SHARING。

尽可能使用 PL/SQL。

缓存序列号。

连接库高速缓存中的对象。

SQL查询的时候是把数据先读到缓存即内存,然后再输出到用户的界面,如果占得太多你可以重启下服务或把SQL的内存管理设置为达到一定量自动释放缓存网上好多关于这样的文章设置,你可以到上面看下,然后照着设就行

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 连接池的配置的数量是根据tomcat服务器内存来配置 还是根据系统硬件内存来配置?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情