CPU使用率高的时候,运行着什么

在开发过程中,有时候我们发现JVM占用的CPU居高不下,跟我们的预期不符,这时,CPU在做什么呢?是什么线程让CPU如此忙碌呢?我们通过如下几步,可以查看CPU在执行什么线程。 1.查找jvm进程ID: jps -lv 或者 ps aux | grep java 2.根据pid,查找占用cpu较高的线程:ps -mp pid -o THREAD,tid,time 如图所示:找到占用cpu最高的tid (可以使用sort命令排序: ps aux|sort -k3rn ) 3.将tid转换为16进制的数字:printf “%x\n” tid 4.使用jstack命令,查询线程信息,从而定位到具体线程和代码:jstack pid | grep 7ccd -A 30

mongodb新版本(3.6)配置详解

文章目录 * 1 配置说明 * 2 重要配置参数讲解如下: * 3 与安全有关的配置(摘要介绍) * 4 与性能有关的参数 * 5 配置样例 * 5.1 普通mongod节点 * 5.2 复制集 * 5.3 cluster * 5.4 路由节点 * 6 其他 * 6.1 repair 配置说明 在Mongod安装包中,包含2个进程启动文件:mongod和mongos;其中mongd是核心基础进程,用来接收读写请求、负责存储实际数据,mongod实例是构成集群的基本单位,比如Replication set、Sharding Cluster、Config Servers等; mongos是Sharding Cluster架构模式中的“路由”进程,即客户端请求访问mongos,然后有mongos将请求转发给合适的sharding server执行操作,

解决linux服务器FIN_WAIT2,time_wait连接过多问题

#netstat -an|awk ‘/tcp/ {print $6}’|sort|uniq -c 16 CLOSING 130 ESTABLISHED 298 FIN_WAIT1 13 FIN_WAIT2 9 LAST_ACK 7 LISTEN 103 SYN_RECV 5204 TIME_WAIT 状态:描述 CLOSED:无连接是活动的或正在进行 LISTEN:服务器在等待进入呼叫 SYN_RECV:一个连接请求已经到达,等待确认 SYN_SENT:应用已经开始,打开一个连接 ESTABLISHED:正常数据传输状态 FIN_WAIT1:应用说它已经完成 FIN_

crontab的写法2种

crontab 的写法(@reboot, @yearly…) crontab 主要是在做计划任务、定时执行, 通常一般写法大概都是如下: 使用crontab -e 编辑,也可vim编辑/etc/crontab文件: 0 0 * * * /root/test.sh 这种写法规则如下: 分 时 日 月 周 * * * * *取值范围如下表: field allowed values ----- -------------- minute(分) 0-59 hour (时) 0-23 day of month (日) 1-31 month (月) 1-12 (or names, see below) day

ftp主被动模式介绍

FTP是仅基于TCP的服务,不支持UDP。 与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21(命令端口)和20(数据端口)。但FTP工作方式的不同,数据端口并不总是20。这就是主动与被动FTP的最大不同之处。 文章目录 * 0.1 主动FTP * 0.2 被动FTP * 0.3 总结 * 0.4 主动与被动FTP优缺点: * 0.5 FTP主动模式与被动模式的解决与原理 * 1 ### 概括: * 1.1 扩展 * 1.1.1 wget下载ftp文件失败 主动FTP 主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始 监听端口N+1,并发送FTP命令“port N+

mongodb分片副本集群搭建

文章目录 * 1 1  部署结构 * 2 2  部署步骤 * 3 3  安装MongoDB * 4 4   搭建分片集群 * 5 5  数据库初始化 * 6 7  应用迁移 1  部署结构 1.1   集群结构 典型的三分片Mongo集群如下图所示,包含三类组件:查询路由、配置服务器、分片。其中查询路由为mongos进程,配置服务器和分片都是mongod进程。配置服务器和分片都采取副本集(replica set)来确保可用性和健壮性,每个副本集最少包含三个节点。查询路由都是单实例运行,没有副本集机制,可根据需要增加实例数量,也可以在外部添加负载均衡。 上图中每个方框仅代表功能集合,不代表物理位置。实际部署时,为了避免单点故障,同一个副本集中的成员,应该部署在不同主机上。比如分片1的三个mongod进程应该运行在三台不同的主机上。 1.2   部署方案

centos安装

安装系统 界面说明: Install or upgrade an existing system 安装或升级现有的系统 install system with basic video driver 安装过程中采用 基本的显卡驱动 Rescue installed system 进入系统修复模式 Boot from local drive 退出安装从硬盘启动 Memory test 内存检测 这里选择第一项,安装或升级现有的系统,回车。 出现是否对CD媒体进行测试的提问,这里选择“Skip”跳过测试。 然后,也许会提示找到不收支持的硬件啥的,就不管了,直接OK,我就不截图了。 随后会来到CentOS的安装界面,如图所示: 不要犹豫,直接Next。 这里,我选择了English,英文版: 选择基本存储设备,下一步

sed中的变量使用问题

Sed里使用变量的问题 网上有人总结了四种方案: eval sed 's/$a/$b/' filename sed "s/$a/$b/" filename sed 's/'$a'/'$b'/' filename sed s/$a/$b/ filename 我比较喜欢第二种,也就是:Sed后面的表达式一般用单引号引起来(’),当需要使用变量时就换用双引号(”)。 关于单双引号的区别: 单引号:shell处理命令时,对其中的内容不做任何处理。即此时是引号内的内容是sed命令所定义的格式。 双引号:shell处理命令时,要对其中的内容进行算术扩展。如果想让shell扩展后得到sed命令所要的格式,使用命令:sed -n “/\\$/p” haha,扩展后得到的结果即\$. 因此对于语句类似: $Comfilename="/home/evan/

sed指定行匹配

sed是一个非交互性性文本编辑器,它编辑文件或标准输入 导出的文件拷贝。标准输入可能是来自键盘、文件重定向、字符串或变量,或者是一个管道文件。sed可以随意编辑小或大的文件,有许多sed命令用来编辑、 删除,并允许做这项工作时不在现场。sed一次性处理所有改变,因而变得很有效,对用户来说,最重要的是节 省了时间。sed必须通过行号和正则表达式指定要改变的文本行 sed怎样读取数据: sed从文件的一个文本行或从标准输入的几种格式中读取数据,将之拷贝到一个编辑缓冲区,然后读命令行或脚本的第一条命令,并使用这些命令查找模式或定位 行号编辑它,重复过程直到命令结束 文章目录 * 1 sed命令的调用: * 2 使用sed在文本中定位文本的方式: * 3 基本sed编辑命令: * 4 基本sed编程举例: * 5 快速一行命令: sed命令的调用: 在命令行键入命令;将sed命令插入脚本文件,然后调用sed;将sed命令插入脚本文件,并使sed脚本可执行 sed [option] sed命令 输入文件 在命令行使用sed命令,实际命

python爬虫(爬取知乎答案图片)

文章目录 * 1 1.⾸先,你要在电脑⾥安装 python 的环境 * 2 2、selenium * 3 2.0 在爬⾍的时候我们经常会发现⽹页都是经过压缩去掉缩进和空格的,页⾯结构会很不清晰,这时候我们就需要⽤ BeautifulSoup 这个 lib 来进⾏html ⽂件结构化。 * 4 2.1 确定目标URL * 5 2.3 结构化HTML页面并保存 * 6 2.4 爬取知乎问题回答里的nodes * 7 2.5 下载图片 1.⾸先,你要在电脑⾥安装 python 的环境 我会提供2.7和3.