请选择 进入手机版 | 继续访问电脑版
查看: 990|回复: 0

[Mysql数据库] CentOS查看内存占用情况

3万

主题

3万

帖子

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
100197
发表于 2015-12-2 18:44:47

CentOS查看内存占用情况,有需要的朋友可以参考下。


背景

上次安装好MySQL之后, 这些天安装了tomcat+nginx, 放了两个小网站跑了. 接着又git+jenkins的持续集成, 把github上的代码可以在jenkins里面自动发布.
现在部署的应用需要连接数据库了, 发现启动MySQL的时候报错了:

  1. > service mysqld start
  2. MySQL Daemon failed to start.
  3. Starting mysqld: [FAILED]
复制代码

没有任何信息, 找到MySQL的日志文件, 在/var/log/mysqld.log,打开看到报错信息:

  1. 151128 13:57:05 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
  2. 2015-11-28T05:57:05.845716Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp serve
  3. r option (see documentation for more details).
  4. 2015-11-28T05:57:05.846259Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.9) starting as process 2441 ...
  5. 2015-11-28T05:57:05.850492Z 0 [Note] InnoDB: PUNCH HOLE support available
  6. 2015-11-28T05:57:05.850515Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
  7. 2015-11-28T05:57:05.850521Z 0 [Note] InnoDB: Uses event mutexes
  8. 2015-11-28T05:57:05.850529Z 0 [Note] InnoDB: GCC builtin __sync_synchronize() is used for memory barrier
  9. 2015-11-28T05:57:05.850534Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
  10. 2015-11-28T05:57:05.850539Z 0 [Note] InnoDB: Using Linux native AIO
  11. 2015-11-28T05:57:05.850820Z 0 [Note] InnoDB: Number of pools: 1
  12. 2015-11-28T05:57:05.850936Z 0 [Note] InnoDB: Using CPU crc32 instructions
  13. 2015-11-28T05:57:05.858460Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
  14. 2015-11-28T05:57:05.858517Z 0 [ERROR] InnoDB: mmap(137428992 bytes) failed; errno 12
  15. 2015-11-28T05:57:05.858531Z 0 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
  16. 2015-11-28T05:57:05.858547Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
  17. 2015-11-28T05:57:05.858558Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
  18. 2015-11-28T05:57:05.858563Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
  19. 2015-11-28T05:57:05.858569Z 0 [ERROR] Failed to initialize plugins.
  20. 2015-11-28T05:57:05.858575Z 0 [ERROR] Aborting
  21. 2015-11-28T05:57:05.858585Z 0 [Note] Binlog end
  22. 2015-11-28T05:57:05.858641Z 0 [Note] Shutting down plugin 'CSV'
  23. 2015-11-28T05:57:05.858652Z 0 [Note] Shutting down plugin 'MyISAM'
  24. 2015-11-28T05:57:05.859081Z 0 [Note] /usr/sbin/mysqld: Shutdown complete
  25. 151128 13:57:05 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
复制代码

可以使用下面命令查看内存占用情况:

free查看总内存占用情况 top查看进程相关的CPU,内存占用情况

简单介绍下top命令:
第一行:
系统当前时刻, 系统运行时间, 当前登陆系统的用户数量, load average为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数.一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程;

第二行:
total, 为当前系统进程总数;
running, 为当前运行中的进程数;
sleeping, 为当前处于等待状态中的进程数;
stoped, 为被停止的系统进程数;
zombie, 为被复原的进程数;

第三行Cpu(s):
分别表示了 CPU 当前的使用率;

第四行Mem:
分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量;

第五行Swap:
表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。

执行top命令后的可进行的操作:
P - 以 CPU 占用率大小的顺序排列进程列表
M - 以内存占用率大小的顺序排列进程列表
N - 以 PID 的大小的顺序排列表示进程列表
l - 关闭或开启第一部分第一行 top 信息的表示
t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m - 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
n - 设置在进程列表所显示进程的数量
s - 改变画面更新周期
h - 显示帮助
q - 退出 top

pmap命令查看详细进程的内存占用情况

可以根据进程查看进程相关信息占用的内存情况,如下所示:
> pmap -d pid

后记

找到原来是jenkins占用了较大的内存,把它停掉,重新启动mysql成功.

jenkins1.639只安装了github plugins后, 有一个maven的项目, 在什么操作的不进行的情况下, 内存占用到400+M, 我还以为是不是有问题,.
后来查询到官方建议jenkins服务器建议使用1G以上内存



回复

使用道具 举报