我正在尝试为应用程序运行负载测试。为此,我在具有60GB Ram和超过足够CPU能力的Ubuntu

Vm上使用JMeter(v.2.13)。目标是达到通过WebSocket连接的1万名用户。

但是,在测试运行期间,我在ssh控制台上收到以下错误(大约1.5k至2.5k模拟用户)

OpenJDK 64-Bit Server VM warning: Attempt to protect stack guard pages failed.

OpenJDK 64-Bit Server VM warning: Attempt to deallocate stack guard pages failed.

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f20ee653000, 12288, 0) failed; error='Cannot allocate memory' (errno=12)

#

# There is insufficient memory for the Java Runtime Environment to continue.

# Native memory allocation (malloc) failed to allocate 12288 bytes for committing reserved memory.

# An error report file with more information is saved as:

# /jmetertests/jm/bin/hs_err_pid1833.log

OpenJDK 64-Bit Server VM warning: Attempt to deallocate stack guard pages failed.

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f2218de8000, 12288, 0) failed; error='Cannot allocate memory' (errno=12)

提到的错误报告文件如下所示

# There is insufficient memory for the Java Runtime Environment to continue.

# Native memory allocation (malloc) failed to allocate 12288 bytes for committing reserved memory.

# Possible reasons:

# The system is out of physical RAM or swap space

# In 32 bit mode, the process size limit was hit

# Possible solutions:

# Reduce memory load on the system

# Increase physical memory or swap space

# Check if swap backing store is full

# Use 64 bit Java on a 64 bit OS

# Decrease Java heap size (-Xmx/-Xms)

# Decrease number of Java threads

# Decrease Java thread stack sizes (-Xss)

# Set larger code cache with -XX:ReservedCodeCacheSize=

# This output file may be truncated or incomplete.

#

# Out of Memory Error (os_linux.cpp:2798), pid=1833, tid=140472285792000

#

# JRE version: OpenJDK Runtime Environment (7.0_75-b13) (build 1.7.0_75-b13)

# Java VM: OpenJDK 64-Bit Server VM (24.75-b04 mixed mode linux-amd64 )

# Derivative: IcedTea 2.5.4

# Distribution: Ubuntu 14.04 LTS, package 7u75-2.5.4-1~trusty1

# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

我试图通过在.sh文件中发出java命令之前添加以下行来修改jmeter.sh来分配更多内存:

JVM_ARGS="-Xms5g -Xmx20g -Xss300k"

我也尝试_JAVA_OPTIONS使用以下命令设置环境变量

export _JAVA_OPTIONS="-Xms5g -Xmx20g"

最后我在一些SO线程中找到了此命令

sysctl -w vm.max_map_count=500000

该top-Command使我对内存的下列信息

KiB Mem: 61836576 total, 15163400 used, 46673176 free, 10636 buffers

KiB Swap: 0 total, 0 used, 0 free. 94492 cached Mem

更新

仅供参考:除简单的数据编写器外,我在JMeter中不使用任何侦听器。但是,即使我禁用了最后一个侦听器,也会引发错误。

java -Xms40g -version

是成功的-所以我真的可以分配这么多的内存

我通过使用减小了堆栈大小

-Xss300k

当我现在得到一个

Uncaught Exception java.lang.OutOfMemoryError:

unable to create new native thread. See log file for details.

错误。看来系统上的线程数已用完?

更新2

根据某些用户的要求,结果uf ulimit -a

core file size (blocks, -c) 0

scheduling priority (-e) 0

pending signals (-i) 491456

max locked memory (kbytes, -l) 64

open files (-n) 500000

pipe size (512 bytes, -p) 8

POSIX message queues (bytes, -q) 819200

real-time priority (-r) 0

stack size (kbytes, -s) 8192

max user processes (-u) 491456

... all other entries are set to 'unlimited'

并且limits.conf包含以下条目

* hard nofile 900000

* soft nofile 900000

root hard nofile 900000

root soft nofile 900000

另外,我已将threads-maxunder

设置为proc/sys/kernel高得离谱,并且还增加了proc/sys/vm/max_map_count

我错过了什么还是做错了什么?谢谢您的帮助。

linux jmeter 内存,JMeter-Linux内存不足相关推荐

  1. jmeter压力测试linux,JMeter压力测试

    JMeter压力测试 整体目标: 安装虚拟机,并安装一套LAMP(Linux+Apache+Mysql+PHP)待测系统,推荐ECShop(http://www.ecshop.com),基于此进行Jm ...

  2. linux中使用jmeter压测

    1.安装jdk 2.下载jmeter的linux版本 在linu中解压 vim /ect/profile 在底部加上 export JMETER_HOME=/root/jmeter/apache-jm ...

  3. Jmeter 监控cpu、内存、io

    1.Jmeter本不支持监控cpu.内存.io的,需要下载插件,下载插件官网地址:https://jmeter-plugins.org/downloads/old/ 如果嫌官网下载慢,可以这里下载:链 ...

  4. 官方指定Jmeter配置JVM堆内存方式

    官方指定Jmeter配置JVM堆内存方式 文章目录 官方指定Jmeter配置JVM堆内存方式 1.概述 2.调整Jmeter堆内存 2.1.介绍官方推荐堆内存调整方法(jmeter在windows环境 ...

  5. linux内存管理 之 内存节点和内存分区(Zone)

    https://www.cnblogs.com/youngerchina/p/5624516.html Linux支持多种硬件体系结构,因此Linux必须采用通用的方法来描述内存,以方便对内存进行管理 ...

  6. Linux驱动技术(一) _内存申请

    先上基础,下图是Linux的内存映射模型 每一个进程都有自己的进程空间,进程空间的0-3G是用户空间,3G-4G是内核空间 每个进程的用户空间不在同一个物理内存页,但是所有的进程的内核空间对应同样的物 ...

  7. Linux Tomcat安装,Linux配置Tomcat,Linux Tomcat修改内存,Linux tomcat修改端口

    Linux Tomcat安装,Linux配置Tomcat,Linux Tomcat修改内存,Linux tomcat修改端口 >>>>>>>>>& ...

  8. linux内存使用统计,Linux 中free命令检查内存使用情况

    我们都知道, IT 基础设施方面的大多数服务器(包括世界顶级的超级计算机)都运行在 Linux 平台上,因为和其他操作系统相比, Linux 更加灵活.有的操作系统对于一些微乎其微的改动和补丁更新都需 ...

  9. Linux启动检测内存条错误,linux检测程序内存泄漏和内存错误

    在linux的开发程序的时候,可以很方便的使用valgrind这个工具方便检测内存泄漏和内存错误. 安装很方便: debian(如ubuntu) sudo apt-get install valgri ...

  10. python使用psutil获取系统(Windows Linux)所有运行进程信息实战:CPU时间、内存使用量、内存占用率、PID、名称、创建时间等;

    python使用psutil获取系统(Windows Linux)所有运行进程信息实战:CPU时间.内存使用量.内存占用率.PID.名称.创建时间等: psutil模块可以跨平台使用,支持Linux/ ...

最新文章

  1. 利用getchar()消除多余字符数据(主要是“回车”)
  2. BFD (双向转发检测) 协议简介与开发
  3. android 流量统计不准确_汽车里程表上显示的百公里油耗准确吗?是不是真的是欢乐表...
  4. mysql数据被截断_有关Mysql数据截断问题的处理方法
  5. Vim和Vi的常用命令
  6. 计算机如何玩二十四点游戏,数学二十四点游戏有什么技巧吗?
  7. win7系统如何更改密码策略
  8. 关于BaseAdapter在listView中的使用
  9. Cannot get a connection, pool error Timeout waiting for idle object (获取不到数据库连接)...
  10. jetson 安装atp-get install qt时出现 unable to locate 或者dependencies unmet的报错
  11. Windows 下使用GNU开发环境[转]
  12. 南阳理工acm,水仙花数
  13. 假币问题 (n枚硬币+未知轻重+DFS)
  14. python Calendar日历模块函数介绍
  15. QNX Hypervisor —— 内存
  16. 第六届蓝桥杯大赛个人赛决赛(软件类)真题
  17. XML - XML学习/XML文件解析器(C++)实现
  18. SQLite 使用问题记录(一)
  19. AVL树 01 AVL树基础
  20. 新麦机械冲刺深交所:年营收9.7亿 谢氏家族持股23%

热门文章

  1. js判断file是否为空_JS - 获取文件后缀,判断文件类型(比如是否为图片格式)...
  2. atsl android auto吗,二十万就能开上凯迪拉克ATS-L,还有人在纠结买ATS还是GS?
  3. Muse-UI +Vue2.0框架开发环境搭建
  4. Spark SQL概念学习系列之Spark Shark是什么?
  5. 简析银行业数据中心的特点
  6. 基础知识系列☞关键字→virtual
  7. 最后的配置部分:LNMP+Tomcat
  8. H3C之虚拟路由器冗余协议(VRRP)的原理及应用
  9. 网规之路——强化项目管理知识点训练
  10. 利用python os模块搜索指定目录下包含指定字符的文件