Linux 里面怎么让系统分配更多的内存给mysql用

Linux 里面怎么让系统分配更多的内存给mysql用,第1张

Linux 进程通过 C 标准库中的内存分配函数 malloc 向系统申请内存,但是到真正与内核交互之间,其实还隔了一层,即内存分配管理器(memory allocator)。常见的内存分配器包括:ptmalloc(Glibc)、tcmalloc(Google)、jemalloc(FreeBSD)。MySQL 默认使用的是 glibc 的 ptmalloc 作为内存分配器。

内存分配器采用的是内存池的管理方式,处在用户程序层和内核层之间,它响应用户的分配请求,向 *** 作系统申请内存,然后将其返回给用户程序。

为了保持高效的分配,分配器通常会预先向 *** 作系统申请一块内存,当用户程序申请和释放内存的时候,分配器会将这些内存管理起来,并通过一些算法策略来判断是否将其返回给 *** 作系统。这样做的最大好处就是可以避免用户程序频繁的调用系统来进行内存分配,使用户程序在内存使用上更加高效快捷。

关于 ptmalloc 的内存分配原理,个人也不是非常了解,这里就不班门弄斧了,有兴趣的同学可以去看下华庭的《glibc 内存管理 ptmalloc 源代码分析》。

关于如何选择这三种内存分配器,网上资料大多都是推荐摒弃 glibc 原生的 ptmalloc,而改用 jemalloc 或者 tcmalloc 作为默认分配器。因为 ptmalloc 的主要问题其实是内存浪费、内存碎片、以及加锁导致的性能问题,而 jemalloc 与 tcmalloc 对于内存碎片、多线程处理优化的更好。

目前 jemalloc 应用于 Firefox、FaceBook 等,并且是 MariaDB、Redis、Tengine 默认推荐的内存分配器,而 tcmalloc 则应用于 WebKit、Chrome 等。

下面是哥去考RHCSA时做的笔记

创建交换分区

eg:应用程序-系统工具-磁盘实用工具-创建分区-类型-交换 分区

mkswap /dev/ha

free 看到总交换分区的大小

swapon /dev/ha 开启交换分区

free 查看总分区大小是否多了

swapon -s 查看swap分区

Vim /etc/fstab

/dev/ha swap swap defaults 0 0

有必要的话,可以重启查看一下

以WAS为例:

[tmp]$ ps -ef | grep  java

root      9787     1  0 Sep17        00:02:48 /opt/IBM/WebSphere/AppServer/java/bin/java -Xms50m -Xmx256m

-Xms 和 -Xmx 分别代表分配JVM的最小内存和最大内存。

堆栈信息你可以用 kill -3 后面跟上java进程的pid,这样就能生成 thread dump 了。

具体如下:

1、简介C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

2、基本介绍

C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐。最近25年是使用最为广泛的编程语言。

3、运算

C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,对此合理进行分类,找出它们与数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。

程序占用文件步骤是:

1、只查看该进程:ps-ef|grep11345。

2、查看该进程打开的文件:lsof-p11345。

3、查看内存分配:lcat/proc/11345/maps。

4、查看堆栈:pstack11345。

5、查看发出的系统调用:strace-p11345。

6、查看调用库函数:ltrace-p11345。

1、首先,先来查看一下系统的空间分配情况。

2、卸载VolGroup-lv_home分区。

3、此时在用df命令查看将会发现/home目录已经看不见了。

4、重新设定VolGroup-lv_home的大小。

5、将lv_home逻辑分区减小到指定大小。这个命令是将已经减少的200G空间拿到系统公共的区域,可以被其他分区加载和利用。

6、查询卷组的信息:Free PE / Size指定的应该是现在可在分配的空间。

以上就是关于Linux 里面怎么让系统分配更多的内存给mysql用全部的内容,包括:Linux 里面怎么让系统分配更多的内存给mysql用、linux如何分配大内存、如何查看当前linux系统给JVM分配了多大的内存等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10632798.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存