内存参数

Linux系统资源使用情况

最后都变了- 提交于 2020-01-13 06:55:33
概述: 用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况... 还有一种办法是 ps -ef | sort -k7 ,将进程按运行时间排序,看哪个进程消耗的cpu时间最多。 top: 主要参数 d:指定更新的间隔,以秒计算。 q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。 c:显示进程完整的路径与名称。 S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。 s:安全模式。 i:不显示任何闲置(Idle)或无用(Zombie)的行程。 n:显示更新的次数,完成后将会退出to 显示参数: PID(Process ID):进程标示号。 USER:进程所有者的用户名。 PR:进程的优先级别。 NI:进程的优先级别数值。 VIRT:进程占用的虚拟内存值。 RES:进程占用的物理内存值。 SHR:进程使用的共享内存值。 S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。 %CPU:该进程占用的CPU使用率。 %MEM:该进程占用的物理内存和总内存的百分比。 TIME+:该进程启动后占用的总的CPU时间。 Command:进程启动的启动命令名称,如果这一行显示不下

HBase环境搭建随记

别等时光非礼了梦想. 提交于 2020-01-12 06:41:28
====软件版本==== jdk:jdk-8u77-linux-x64.tar.gz zookeeper:zookeeper-3.4.6.tar.gz hadoop:hadoop-2.7.4.tar.gz hbase:hbase-1.3.1-bin.tar.gz ====前提准备==== 3台vmware虚拟机(已配置无秘钥访问) 其中,/etc/hosts文件内容如下: ====安装jdk==== 上传安装包,解压缩,然后配置环境变量即可。 正常配置之后,在服务器任意路径执行java -version可以显示java版本。如下所示。 ====安装zookeeper==== 这里也不在过多描述,简单罗列一下配置文件。 配置文件:zoo.cfg 需要分别在3个节点的,dataDir路径下生成节点的myid。 启动并验证zookeeper是否正常 启动命令:/home/hadmin/zookeeper-3.4.6/bin/zkServer.sh start 查看状态:/home/hadmin/zookeeper-3.4.6/bin/zkServer.sh status 启动之后,3个节点的状态分别如下: ====安装hadoop==== 因为HBase的底层是基于Hadoop的hdfs的,所以在安装HBase之前,必须要安装Hadoop,并确保hdfs正常。

jvm的那些设置参数你都知道吗

北慕城南 提交于 2020-01-12 05:11:52
前言 大家都知道,jvm在启动的时候,会执行默认的一些参数。一般情况下,这些设置的默认参数应对一些平常的项目也够用了。但是如果项目特别大了,需要增加一下堆内存的大小、或者是系统老是莫明的挂掉,想查看下gc日志来排查一下错误的原因,都需要咱们手动设置这些参数。 各个参数介绍 1.verbose:gc 表示,启动jvm的时候,输出jvm里面的gc信息。格式如下: [Full GC 178K->99K(1984K), 0.0253877 secs] 解读 :Full GC 就表示执行了一次Full GC的操作,178K 和99K 就表示执行GC前内存容量和执行GC后的内存容量。1984K就表示内存总容量。后面那个是执行本次GC所消耗的时间,单位是秒。 2.-XX:+printGC 这个打印的GC信息跟上个一样,就不做介绍了。 3.-XX:+PrintGCDetails 打印GC的详细信息。格式如下: –Heap – def new generation total 13824K, used 11223K [0x27e80000, 0x28d80000, 0x28d80000) – eden space 12288K, 91% used [0x27e80000, 0x28975f20, 0x28a80000) – from space 1536K, 0% used [0x28a80000,

移动端APP之手工测试基础2

北城余情 提交于 2020-01-11 23:49:49
文章目录 1.APP性能测试的分类 2.性能测试 3.用户体验测试 4.稳定性测试 5.你是如何测试APP? 1.APP性能测试的分类 后端服务器的性能测试 APP客户端的性能测试 APP稳定性测试 2.性能测试 性能测试关注的指标 CPU 内存 流量 电量 启动时间 流畅度 GT工具的介绍 功能 基础性能指标测试:CPU、内存、流量、电量、流畅度 获取手机日志 进行数据抓包 安装 APK安装包直接安装,只有Android GT SDK 集成到被测的应用,有Android和IOS GT工具的使用 AUT界面 选择被测应用 选择检测指标 参数界面 选择整机的检测指标 保存检测的数据 查看检测数据 命令 adb devices # 查看当前adb工具和手机是否连接 192.168.27.101:5555 device adb shell # 进入手机终端 adb pull 手机中文件的路径 电脑文件夹的路径 手机日志 在日志界面,点击logcat开关 点击保存按钮,保存日志文件 手机抓包 进入插件界面,点击抓包插件 直接点击开始抓包,点击停止,保存数据 CPU测试 cpu的指标 CPU的状态 用户态-处理应用程序的时间 系统态-处理系统内核的时间 空闲态-处理空闲进程的时间 CPU的使用率 CPU的使用率 = (用户态+系统态)/总时间 jiffies

nginx源码解析之常用数据结构

不问归期 提交于 2020-01-11 15:56:07
  1、基础数据结构(src/core目录)   1)ngx_list_t(ngx_list.h) typedef struct ngx_list_part_s ngx_list_part_t; // 描述链表的一个元素(数组) struct ngx_list_part_s { void *elts; // 数组的起始地址 ngx_uint_t nelts; // 数组当前已使用了多少容量 ngx_list_part_t *next; // 下一个链表元素ngx_list_part_t的地址 }; typedef struct { ngx_list_part_t *last; // 指向链表的最后一个数组元素 ngx_list_part_t part; // 链表的首个数组元素 size_t size; // 存储的每个数据的字节数必须小于或等于size ngx_uint_t nalloc; // 每个ngx_list_part_t数组的容量 ngx_pool_t *pool; // 链表中管理内存分配的内存池对象 } ngx_list_t; // 描述整个链表   相关接口:   ngx_list_create(): 创建新的链表。   ngx_list_init(): 初始化一个已有的链表。返回 NGX_OK 表示成功,返回 NGX_ERROR 表示失败。   ngx_list

day05_数组

こ雲淡風輕ζ 提交于 2020-01-10 23:16:20
容器概念 容器: 是将多个数据存储到一起,每个数据称为该容器的元素。 生活中的容器 :水杯,衣柜,教室 数组概念 数组: 数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致 数组的特点: 数组是一种引用数据类型 数组当中的多个数据,类型必须统一 数组的长度在程序运行期间不可改变 数组的初始化 在内存当中创建一个数组,并且向其中赋予一些默认值就是数组的初始化 两种常见的初始化方式: 动态初始化(指定长度): 在创建数组的时候,直接指定数组当中的数据元素个数。 静态初始化(指定内容): 在创建数组的时候,不直接指定数据个数多少,而是直接将具体的数据内容进行指定。 数组的定义 动态初始化数组 格式: 数据类型[] 数组名称 = new 数据类型[数组长度]; 数组定义格式详解: 数据类型: 创建的数组容器可以存储什么数据类型。 [ ] : 表示数组。 数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。 new:关键字,创建数组使用的关键字。 数据类型: 创建的数组容器可以存储什么数据类型。 [长度]:数组的长度,表示数组容器中可以存储多少个元素。 注意: 数组有定长特性,长度一旦指定,不可更改。和水杯道理相同,买了一个2升的水杯,总容量就是2升,不能多也不能少。 举例 // 创建一个数组,里面可以存放300个int数据 int[] arrayA = new

Tomcat参数JAVA_OPTS调整

久未见 提交于 2020-01-10 17:22:25
启动文件修改 在windows环境下,tomcat下的~/bin/catalina.bat文件,在文件头部加入: set "JAVA_OPTS=%JAVA_OPTS% -server -Xms5120m -Xmx10240m -XX:PermSize=640M -XX:MaxPermSize=2560m" 在linux环境下,tomcat下的~/bin/catalina.sh文件,在文件头部加入: JAVA_OPTS = " $JAVA_OPTS -server -Xms4096m -Xmx6144m -XX:PermSize=256m -XX:MaxPermSize=2048m" 重启tomcat,即可。 验证 可以通过访问 http://localhost:8080/manager/status 可以查看jvm的信息。tomcat的管理员配置详见tomcat管理员配置 常用参数详解: - server:一定要作为第一个参数,在多个 CPU 时性能佳,还有一种叫 - client 的模式,特点是启动速度比较快,但运行时性能和内存管理效率不高,通常用于客户端应用程序或开发调试,在 32 位环境下直接运行 Java 程序默认启用该模式。Server 模式的特点是启动速度比较慢,但运行时性能和内存管理效率很高,适用于生产环境,在具有 64 位能力的 JDK 环境下默认启用该模式

详解JVM内存管理与垃圾回收机制1 - 内存管理

感情迁移 提交于 2020-01-10 06:44:48
Java应用程序是运行在JVM上的,得益于JVM的内存管理和垃圾收集机制,开发人员的效率得到了显著提升,也不容易出现内存溢出和泄漏问题。但正是因为开发人员把内存的控制权交给了JVM,一旦出现内存方面的问题,如果不了解JVM的工作原理,将很难排查错误。本文将从理论角度介绍虚拟机的内存管理和垃圾回收机制,算是入门级的文章,希望对大家的日常开发有所助益。 一、内存管理 也许大家都有过这样的经历,在启动时通过-Xmx或者-XX:MaxPermSize这样的参数来显式的设置应用的堆(Heap)和永久代(Permgen)的内存大小,但为什么不直接设置JVM所占内存的大小,而要分别去设置不同的区域?JVM所管理的内存被分成多少区域?每个区域有什么作用?如何来管理这些区域? 1.1 运行时数据区 JVM在执行Java程序时会把其所管理的内存划分成多个不同的数据区域,每个区域的创建时间、销毁时间以及用途都各不相同。比如有的内存区域是所有线程共享的,而有的内存区域是线程隔离的。线程隔离的区域就会随着线程的启动和结束而创建和销毁。JVM所管理的内存将会包含以下几个运行时数据区域,如下图的上半部分所示。 Method Area (方法区) 方法区是所有线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、JIT编译后的代码等数据。在Java虚拟机规范中,方法区属于堆的一个逻辑部分

[C++]C++面试知识总结

只谈情不闲聊 提交于 2020-01-08 23:40:04
1.程序运行知识 1.1 内存布局和分配方式 C程序的内存布局如下: 静态存储区:存储全局变量和static变量,通常在程序编译期间已经分配好了。 BSS段:存放未初始化的static变量和全局变量 Data段:存放初始化过的static变量和全局变量 Text段:存储程序的二进制代码,程序代码区。   堆:程序运行时通过malloc申请的内存区存放在堆中,需要使用free来释放该内存空间,生存期在malloc和free之间。 栈:执行函数时,函数的局部变量存储在栈中,执行结束后自动释放该内存区域,栈内存分配运算内置与处理器指令集中。 C++程序的内存布局与C程序布局类似,区别是C++不再区分全局变量和静态变量是否已经初始化,全部存储在静态存储区;另外堆中存放new/delete申请释放的资源,而malloc和free申请的资源存放在自由存储区。 1.2 内存溢出原因 栈溢出:越界访问造成,例如局部变量数组越界访问或者函数内局部变量使用过多,超出了操作系统为该进程分配的栈的大小,还有递归函数层次过多超过了栈大小。 堆溢出:程序申请了资源但忘记释放该资源,造成内存泄露,累积泄露内存过多会造成内存溢出。 1.3 内存泄露和检测 C++内存泄漏检测内存泄露是指程序中动态分配了内存,但是在程序结束时没有释放这部分内存,从而造成那一部分内存不可用的情况。 动态内存泄露检测:检查new

0047JVM和tomcat优化

a 夏天 提交于 2020-01-08 13:40:25
java –help 查看标准参数 java –X 输出非标准的参数 jps查看正在运行的java进程 jps –l 列出正在运行的java进程的全路径 jinfo –flags 进程id 查看当前进程对应的jvm的所有运行参数 jinfo –flag 参数名 进程id 查看当前进程对应的jvm的指定参数的值 jstat命令查看对内存的使用情况 比如tomcat启动之后,可通过jstat –class tomcat的进程id 来查看相关信息 具体操作可以如下,就知道怎么使用jstat了: 使用jstat可以对内存使用情况进行统计分析 jmap可以获得更加详细 信息,可以对内存使用情况进行汇总,对内存溢出的定位与分析。 jmap用法如下图: 如: 1) jmap –heap 进程id 查看堆内存使用情况 2) jmap –histo <pid> | more 查看所有对象,包括活跃的和非活跃的 3) jmap –histo:live <pid> | more 查看活跃对象 4) 将当前堆内存使用情况dump到文件中进行分析,语法如下: jmap –dump:format=b,file=dumpFileName <pid> 事例:jmap –dump:format=b,file=/tmp/testDump.dat 5967 jhat命令对dump文件进行分析,jhat用法如下图: 比如