1核1G虚拟机,启动两个jar后cpu飙升直接卡死,查看cpu及内存占用

发现kswapd0进程cpu占用一直居高不下,于是查询资料,总结如下。

swap分区的作用是当物理内存不足时,会将一部分硬盘当做虚拟内存来使用。

kswapd0 占用过高是因为 物理内存不足,使用swap分区与内存换页操作交换数据,导致CPU占用过高。

可以通过修改  /etc/sys/vm/swappiness  里面的数值来修改swap分区使用与否,默认 60,数值越大表示更多的使用swap分区。这个交换参数控制内核从物理内存移出进程,移到交换空间。该参数从0到100,当该参数=0,表示只要有可能就尽力避免交换进程移出物理内存;该参数=100,这告诉内核疯狂的将数据移出物理内存移到swap缓存中。设置vm.swappiness=0 后并不代表禁用swap分区,只是告诉内核,能少用到swap分区就尽量少用到,设置vm.swappiness=100的话,则表示尽量使用swap分区。

Swap配置对性能的影响
        分配太多的Swap空间会浪费磁盘空间,而Swap空间太少,则系统会发生错误。如果系统的物理内存用光了,系统就会跑得很慢,但仍能运行;如果Swap空间用光了,那么系统就会发生错误。例如,Web服务器能根据不同的请求数量衍生出多个服务进程(或线程),如果Swap空间用完,则服务进程无法启动,通常会出现“application is out of memory”的错误,严重时会造成服务进程的死锁。因此Swap空间的分配是很重要的。
通常情况下,Swap空间应大于或等于物理内存的大小,最小不应小于64M,通常Swap空间的大小应是物理内存的2-2.5倍。但根据不同的应用,应有不同的配置:如果是小的桌面系统,则只需要较小的Swap空间,而大的服务器系统则视情况不同需要不同大小的Swap空间。特别是数据库服务器和Web服务器,随着访问量的增加,对Swap空间的要求也会增加,一般来说对于4G 以下的物理内存,配置2倍的swap,4G 以上配置1倍。
另外,Swap分区的数量对性能也有很大的影响。因为Swap交换的操作是磁盘IO的操作,如果有多个Swap交换区,Swap空间的分配会以轮流的方式操作于所有的Swap,这样会大大均衡IO的负载,加快Swap交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统大多数时间处于等待状态,效率很低。用性能监视工具就会发现,此时的CPU并不很忙,而系统却慢。这说明,瓶颈在IO上,依靠提高CPU的速度是解决不了问题的。

总结完了继续正题:

查看/proc/sys/vm/swappiness,vm.swappiness=0已经是能少用到swap分区就尽量少用到分区了

先把堆内存设置小点把程序启动起来,频繁触发GC,没办法只能升级内存了。

java
-Xms128m #JVM启动时的初始堆大小
-Xmx128m #最大堆大小 -jar app.jar

linux 进程 kswapd0 cpu占用过高相关推荐

  1. Linux生产环境CPU占用过高排查步骤

    先用top命令找出CPU占比最高的 top CPU占用最高的是java进程,它的 进程ID:3362 ps -ef 或者 jps 进一步定位,得知是怎样的程序 [root@192 ~] ps -ef ...

  2. Linux kswapd0 CPU占用过高

    kswapd0进程 它是虚拟内存管理中,负责换页的,操作系统每过一定时间就会唤醒kswapd ,看看内存是否紧张,如果不紧张,则睡眠,在 kswapd 中,有2个阀值,pages_hige 和 pag ...

  3. kswapd0 进程CPU占用过高

    前几天遇到的一个问题,自己本地用VM配置的虚拟机,一般会top查看进程以及CPU占用的一些情况.又一次用laravel 打印对象,里面的内容比较多,浏览器当时就卡了. 然后看进程的情况.我以为会是ng ...

  4. linux ubuntu systemd-udevd进程 cpu占用过高 解决方法

    ubuntu 18.04 systemd-udevd进程CPU占用特别高,禁用WiFi可以解决,如下: 执行 udevadm monitor ,不断输出如下信息: UDEV [13756.376116 ...

  5. linux getty进程 cpu占用过高 解决办法

    今天突然发现服务器CPU占用过高,查看了下是getty这个进程占用过高. 原因: 在使用docker run运行容器时使用了 /sbin/init和--privileged参数. 使用/sbin/in ...

  6. Linux 中CPU占用过高问题

    Linux 中CPU占用过高问题 在我们日常开发中常常会有一些CPU资源占用过高的问题,这些问题往往会导致我们系统运行的缓慢,甚至造成系统的奔溃,那我们如何进行这种问题的定位呢,本文将带你研究. 第一 ...

  7. VMware Linux虚拟机CPU占用过高

    VMware Linux虚拟机CPU占用过高 虚拟机内存占用过高是一个巨大的问题,之前已经讲过,而CPU占用过高更是重上加重,今天就来讲讲CPU占用过高的解决方法 CPU占用过高其实很简单,总共有两个 ...

  8. 【linux】oracle数据库cpu占用过高排查方案

    将[%cpu]占用率最高的那条的[PID]复制取出,去数据库执行下面语句,即可查询出是哪条sql语句占导致cpu占用很高 SELECT sql_text FROM v$sqltext a WHERE ...

  9. java cpu 内存使用情况_java高cpu占用和高内存占用问题排查 (转)

    高cpu占用 1.top命令:Linux命令.可以查看实时的CPU使用情况.也可以查看最近一段时间的CPU使用情况. 2.PS命令:Linux命令.强大的进程状态监控命令.可以查看进程以及进程中线程的 ...

最新文章

  1. java线程wait_java多线程学习(四) 之 wait和notify
  2. 搞不懂的算法-排序篇1
  3. Leetcode 100. 相同的树 解题思路及C++实现
  4. C++ >>和<<读写文本文件
  5. php和java语言_JAVA语言和PHP语言的比较
  6. 上海人工智能实验室牛雅哲:通用决策AI平台的开拓创新之路
  7. JAva入门 活着_java基础回顾
  8. mycat读写分离部署步骤
  9. bbb sdk6 ll_rw_block分析
  10. Shield——开源的移动端页面模块化开发框架
  11. linux svn 指定端口号,linux(Ubuntu)搭建Subversion服务器+修改svn端口号
  12. .Net 并发写入文件的多种方式
  13. python中的成员运算符用于判断什么_Python3基础-表达式和运算符
  14. socket通信需要网线连接吗_socket方式实现网络通信
  15. java课程设计-简单学生签到系统-桌面小程序的实现
  16. 基于GMSSL的常用算法特点总结以及源代码分享
  17. ImDisk(似收费的primo ramdisk)免费软件/内存作硬盘
  18. Jmeter使用CSV文件读取大量测试数据
  19. Typora使用教程
  20. KMP字符串匹配算法

热门文章

  1. mysql清空数据库中所有表数据_清空mysql数据库所有表数据
  2. Asura监控系统部署,阿修罗监控部署
  3. C语言中的结构体怎么使用?
  4. 一段式、两段式以及三段式状态机(FSM)设计实例
  5. oracle 排序加行号,SQL行号排序和分页
  6. TextField 输入身份证号手机号银行卡号格式化解决方案
  7. 士兵站队(pku1723)
  8. 这才是你想要的Java学习路线!
  9. 外贸商城系统源码及搭建教程
  10. 查看静态库、动态库使用的gcc版本