0%

前言

jmap全称Memory Map For Java虚拟机统计信息监视工具, 可以生成堆内存的快照, 在事后进行分析.
当然我们还可以给JVM加上-XX:+HeapDumpOnOutOfMemoryError, 在内存溢出的时候自动生成堆内存的快照.
命令格式: jmap [option] vmid

阅读全文 »

前言

jstat全称JVM Statistics Monitoring Tool虚拟机统计信息监视工具, 可以用来监视虚拟机进程中的类加载、内存、垃圾收集、即时编译等运行时数据.
命令格式: jstat [option vmid [interval[s|ms] [count]]]

阅读全文 »

前言

NPM对于Nodejs, 就像Maven对于Java.
NPM是一个包管理工具, 用于管理依赖.

阅读全文 »

前言

最近有个需求, 需要将PPT内的字体全部修改为华文中宋, 并修改字号, 字符间距.
原以为可以和notepad++录制宏, 但是office居然把录制宏这个功能干掉了, 要实现这个需求, 只能自己写VBA.
本文从零开始学习VBA使用.

阅读全文 »

前言

网上关于zuul聚合各个微服务的swagger已经有很多文章了, 但是没有一个完整的关于spring cloud gateway的聚合教程.
研究了一天, 写了个demo, 然后写篇文章记录一下.

阅读全文 »

前言

Java相比于C/C++最大的不同是不用手动进行管理内存, 这一特性得益于Java的自动回收内存机制.
这一回收动作称为Garbage Collection垃圾收集, 也就是GC. 由此延伸出了垃圾收集算法, 垃圾收集器等.

阅读全文 »

简介

Apache Bench简称ab工具, 是一款简单方便的测试工具.
安装方式

script
1
2
yum -y install httpd-tools
apt -y install apache2-utils

使用

使用方式: ab [options] [http[s]://]hostname[:port]/path
常用选项

选项 说明
-n 总请求次数, 最小默认为1
-c 并发次数, 最小默认为1, 且不能大于总请求次数. 例如, 10个请求, 10个并发,实际就是1人请求1
-p post 参数文档路径(-p 和 -T 参数要配合使用)
-T header头内容类型

分析结果

我们简单的对百度做个压测, 20个用户同时发起请求, 总共请求1000次.

script
1
ab -n 1000 -c 20 "https://www.baidu.com/s?wd=test"

结果马上就出来了, 我们主要看以下几个参数

script
1
2
3
4
5
6
7
8
# 完成所有请求花费的时间
Time taken for tests: 5.058 seconds
# 吞吐率,指某个并发用户数下单位时间内处理的请求数
Requests per second: 197.72 [#/sec] (mean)
# 用户平均请求等待时间 = 完成所有请求花费的时间 / (总请求数 / 并发用户数)
Time per request: 101.155 [ms] (mean)
# 服务器平均请求处理时间 = 完成所有请求花费的时间 / 总请求数
Time per request: 5.058 [ms] (mean, across all concurrent requests)

常用例子

script
1
2
3
4
5
# 1. get请求, 20个用户同时发起请求, 总共请求1000次
ab -n 1000 -c 20 -H "header1:value1" -H "header1:value1" "https://www.baidu.com/s?wd=test"
# 2. post请求, 将 post.txt 的内容作为请求参数发送出去
ab -n 1000 -c 10 -p post.txt -T "application/x-www-form-urlencoded" "https://www.baidu.com/s?wd=test"
ab -n 1000 -c 10 -p post.txt -T "application/json" "https://www.baidu.com/s?wd=test"

前言

PHP是下划线命名变量, Java是驼峰命名变量.
对于前端来说, 服务端有两种命名规则, 这是不合理的, 他们希望有一种统一的命名规则.

阅读全文 »

前言

Swarm是一个Docker官方提供的容器编排工具. 是Docker推出的一个kubernetes的竞品(当然现在已经是kubernetes的天下了
Swarm用来解决多机下Docker容器的部署问题, 这是传统DockerDocker compose解决不了的.
并且Swarm已经集成到Docker原生工具里了, 可以直接使用.

阅读全文 »