您的当前位置:首页 --> CentOS入门
CentOS查看内存占用情况
浏览次数:2341 关键词 ( 内存  情况  CentOS  )
背景

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

> service mysqld start
MySQL Daemon failed to start.
Starting mysqld:                                          [FAILED]

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

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

下一条 centos系统中网络配置相关
上一条 centos6.5做网关路由器详细实现方法

数千企业与站长的选择,7*24小时稳定运行

 了解更多套餐详细