搜尋
首頁資料庫mysql教程mySQL占用虚拟内存达8百多兆问题解决思路

为了装mysql环境测试,装上后发现启动后mysql占用了很大的虚拟内存,达8百多兆,需要的朋友可以参考下

为了装mysql环境测试,装上后发现启动后mysql占用了很大的虚拟内存,达8百多兆。网上搜索了一下,得到高人指点my.ini。再也没见再详细的了..只好打开my.ini逐行的啃,虽然英文差了点,不过多少M还是看得明的^-^

更改后如下
innodb_buffer_pool_size=576M ->256M InnoDB引擎缓冲区占了大头,首要就是拿它开刀
query_cache_size=100M ->16M 查询缓存
tmp_table_size=102M ->64M 临时表大小
key_buffer_size=256m ->32M

重启mysql服务后,虚拟内存降到200以下
另外mysql安装目录下有几个文件:my-huge.ini 、my-large.ini、my-medium.ini...这几个是根据内存大小作的建议配置,新手在设置的时候也可以参考一下。
2G内存的MYSQL数据库服务器 my.ini优化 (my.ini)
2G内存,针对站少,优质型的设置,试验特:
table_cache=1024 物理内存越大,设置就越大.默认为2402,调到512-1024最佳
innodb_additional_mem_pool_size=8M 默认为2M
innodb_flush_log_at_trx_commit=0 等到innodb_log_buffer_size列队满后再统一储存,默认为1
innodb_log_buffer_size=4M 默认为1M
innodb_thread_concurrency=8 你的服务器CPU有几个就设置为几,默认为8
key_buffer_size=256M 默认为218 调到128最佳
tmp_table_size=64M 默认为16M 调到64-256最挂
read_buffer_size=4M 默认为64K
read_rnd_buffer_size=16M 默认为256K
sort_buffer_size=32M 默认为256K
max_connections=1024 默认为1210

试验一
table_cache=512或1024
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=0
innodb_log_buffer_size=1M
innodb_thread_concurrency=8 你的服务器CPU有几个就设置为几,默认为8
key_buffer_size=128M
tmp_table_size=128M
read_buffer_size=64K或128K
read_rnd_buffer_size=256K
sort_buffer_size=512K
max_connections=1024

试验二
table_cache=512或1024
innodb_additional_mem_pool_size=8M
innodb_flush_log_at_trx_commit=0
innodb_log_buffer_size=4M
innodb_thread_concurrency=8
key_buffer_size=128M
tmp_table_size=128M
read_buffer_size=4M
read_rnd_buffer_size=16M
sort_buffer_size=32M
max_connections=1024

一般
table_cache=512
innodb_additional_mem_pool_size=8M
innodb_flush_log_at_trx_commit=0
innodb_log_buffer_size=4M
innodb_thread_concurrency=8
key_buffer_size=128M
tmp_table_size=128M
read_buffer_size=4M
read_rnd_buffer_size=16M
sort_buffer_size=32M
max_connections=1024

经过测试.没有特殊情况,最好还是用默认的.
2G内存,针对站多,抗压型的设置,最佳:
table_cache=1024 物理内存越大,设置就越大.默认为2402,调到512-1024最佳
innodb_additional_mem_pool_size=4M 默认为2M
innodb_flush_log_at_trx_commit=1
(设置为0就是等到innodb_log_buffer_size列队满后再统一储存,默认为1)
innodb_log_buffer_size=2M 默认为1M
innodb_thread_concurrency=8 你的服务器CPU有几个就设置为几,建议用默认一般为8
key_buffer_size=256M 默认为218 调到128最佳
tmp_table_size=64M 默认为16M 调到64-256最挂
read_buffer_size=4M 默认为64K
read_rnd_buffer_size=16M 默认为256K
sort_buffer_size=32M 默认为256K
max_connections=1024 默认为1210
thread_cache_size=120 默认为60
query_cache_size=64M

优化mysql数据库性能的十个参数
(1)、max_connections:
允许的同时客户的数量。增加该值增加 mysqld 要求的文件描述符的数量。这个数字应该增加,否则,你将经常看到 too many connections 错误。 默认数值是100,我把它改为1024 。
(2)、record_buffer:
每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区。如果你做很多顺序扫描,你可能想要增加该值。默认数值是131072(128k),我把它改为16773120 (16m)
(3)、key_buffer_size:
索引块是缓冲的并且被所有的线程共享。key_buffer_size是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),到你能负担得起那样多。如果你使它太大,系统将开始换页并且真的变慢了。默认数值是8388600(8m),我的mysql主机有2gb内存,所以我把它改为 402649088(400mb)。
4)、back_log:
要求 mysql 能有的连接数量。当主要mysql线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。
back_log 值指出在mysql暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加它,换句话说,这值对到来的tcp/ip连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制。试图设定back_log高于你的操作系统的限制将是无效的。
当你观察你的主机进程列表,发现大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | null | connect | null | login | null 的待连接进程时,就要加大 back_log 的值了。默认数值是50,我把它改为500。
(5)、interactive_timeout:
服务器在关闭它前在一个交互连接上等待行动的秒数。一个交互的客户被定义为对 mysql_real_connect()使用 client_interactive 选项的客户。 默认数值是28800,我把它改为7200。
(6)、sort_buffer:
每个需要进行排序的线程分配该大小的一个缓冲区。增加这值加速order by或group by操作。默认数值是2097144(2m),我把它改为 16777208 (16m)。
(7)、table_cache:
为所有线程打开表的数量。增加该值能增加mysqld要求的文件描述符的数量。mysql对每个唯一打开的表需要2个文件描述符。默认数值是64,我把它改为512。
(8)、thread_cache_size:
可以复用的保存在中的线程的数量。如果有,新的线程从缓存中取得,当断开连接的时候如果有空间,客户的线置在缓存中。如果有很多新的线程,为了提高性能可以这个变量值。通过比较 connections 和 threads_created 状态的变量,可以看到这个变量的作用。我把它设置为 80。
(9)mysql的搜索功能
用mysql进行搜索,目的是能不分大小写,又能用中文进行搜索
只需起动mysqld时指定 --default-character-set=gb2312
(10)、wait_timeout:
服务器在关闭它之前在一个连接上等待行动的秒数。 默认数值是28800,我把它改为7200。

:参数的调整可以通过修改 /etc/my.cnf 文件并重启 mysql 实现。这是一个比较谨慎的工作,上面的结果也仅仅是我的一些看法,你可以根据你自己主机的硬件情况(特别是内存大小)进一步修改。
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
在win11系统中如何调整虚拟内存?win11系统虚拟内存设置指南在win11系统中如何调整虚拟内存?win11系统虚拟内存设置指南Jan 29, 2024 pm 06:45 PM

虚拟内存是一种可以弥补软件内存不足的技术,它能够提供更好的使用体验。然而,一些用户在升级到Windows11系统后可能不知道如何设置虚拟内存。为了解决这个问题,本站小编为大家提供了最新的设置方法。如果你需要了解完整的步骤,请访问本站获取详细信息。win11设置虚拟内存操作方法1、首先,按键盘win按键,点击找到并进入设置页面。3、接着,在里面找到相关链接中的高级系统设置选项。5、在跳转后的页面中,找到虚拟内存,点击更改按钮即可。

解决win10荒野大镖客2虚拟内存不足的有效方法解决win10荒野大镖客2虚拟内存不足的有效方法Dec 31, 2023 pm 04:29 PM

在玩荒野大镖客2的时候很多小伙伴遇到的最大的问题就是提示虚拟内存不足吧,那么这个问题该怎么解决呢?今天就给大家带来了解决方法一起看看吧。win10荒野大镖客2虚拟内存不足怎么办:1、右击此电脑,点击“属性”。2、点击左侧的“高级系统设置”。3、随后点击“高级”再点击“设置”。4、点击性能中的“高级”选择虚拟内存下面的“更改”。5、取消“自动管理所有驱动器的分页文件大小”前的√,点击“自定义大小”,输入数值,点击设置即可。

如何在 Windows 11 中增加虚拟内存(页面文件)如何在 Windows 11 中增加虚拟内存(页面文件)May 13, 2023 pm 04:37 PM

如果您在运行高端应用程序或游戏时注意到一定的延迟,则可能是RAM/内存通常运行已满。这是增加Windows11中的虚拟内存或页面文件大小的地方。虚拟内存或页面文件是最容易被误解的概念之一,围绕它有很多神话。无论其他人说什么或做什么,都必须彻底了解如何从您的计算机中获得最佳性能。在以下部分中,我们将引导您完成在Windows11中增加虚拟内存的步骤,帮助您了解其重要性以及最佳虚拟内存大小。为什么需要虚拟内存?页面文件或虚拟内存基本上是用作RAM的硬盘的一部分。当内存已满且无法存储更多数据时

虚拟内存设置多少合适虚拟内存设置多少合适Feb 23, 2024 pm 03:34 PM

根据物理内存的大小来决定。具体建议:1、根据微软公司的建议,虚拟内存设为物理内存容量的1.5--3倍;2、如果物理内存为2G,虚拟内存应该设置为3G=3072MB;如果物理内存为4G,那虚拟内存应该设置为6G=6144MB;3、通常推荐将虚拟内存设置为计算机内存总量的1.5到2倍;4、一般跟物理内存差不多。

如何在 Windows 11 中重置虚拟内存(页面文件)?如何在 Windows 11 中重置虚拟内存(页面文件)?Apr 13, 2023 pm 11:28 PM

如果您的计算机没有足够的 RAM 或总是满的,您可以依靠虚拟内存从物理内存中卸载非活动文件。但是,如果这不太顺利,您可能需要在 Windows 11 中重置虚拟内存。我们经常看到我们的计算机滞后,最可能的情况是Windows 11 中的高 RAM 使用率。有很多方法可以降低 RAM 消耗,但这可能会影响您的体验。而且,这就是虚拟内存可以提供帮助的地方。有时需要在 Windows 11 中重置虚拟内存,因此,必须正确理解该概念和过程,我们在以下部分中进行了讨论。虚拟内存是如何工作的,为什么我需要重

虚拟内存分配:16g合适设置吗?虚拟内存分配:16g合适设置吗?Feb 19, 2024 pm 07:42 PM

16G虚拟内存设置多少合适?虚拟内存是计算机系统中的一种技术,它可以通过将部分硬盘空间作为内存的扩充来提升系统的运行效率。对于操作系统来说,虚拟内存是一种非常重要的资源,它可以用来存储暂时不需要的数据,从而释放物理内存供其他程序使用。那么,对于一台具备16G物理内存的计算机来说,该如何设置虚拟内存的大小呢?虚拟内存的大小是由操作系统自动管理的,但我们也可以手

如何优化Win11虚拟内存设置?Win11虚拟内存最佳配置方法如何优化Win11虚拟内存设置?Win11虚拟内存最佳配置方法Jan 30, 2024 pm 05:54 PM

如果你常常因为系统内存不足而感到困扰,可以尝试通过设置虚拟内存来解决问题。虚拟内存可以在一定程度上减轻电脑的卡顿现象。然而,对于不熟悉Win11系统的用户来说,如何进行虚拟内存的设置可能不太清楚。下面我将与大家分享一下Win11系统中设置虚拟内存的方法。win11虚拟内存设置多少合适?1、如果电脑内存小于4GB,通常可以将虚拟内存设置在2-4GB之间。根据理论,可以将虚拟内存设置为物理内存的1.5倍,但在实际使用中可以根据需要进行灵活调整,并没有固定的数值要求。甚至可以将虚拟内存设置为与物理内存

适当的Win10虚拟内存设置是多少?适当的Win10虚拟内存设置是多少?Jan 15, 2024 am 08:03 AM

其实,所谓的虚拟内存实质上是在硬盘上为它开辟出的一片面积广大的特别区域,由Windows系统将此视为内存使用。究竟怎样才能设置出理想的虚拟内存大小呢?win10虚拟内存设置多少合适答:win10虚拟内存设置为物理内存的1.5倍最合适。这仅是参考值,具体设置方式视实际情况而定,设置区间最小是物理内存的1-1.5倍,最大则不超过物理内存的2-2.5倍,具体设置方法可点击右侧链接进行查看详细内容。(win10虚拟内存设置方法)win10虚拟内存设置在哪个盘最好答:win10虚拟内存设置在C盘最好。由于

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器