如何排查生产问题的

生产问题排查基本命令 当线上服务出现问题的时候, 可以通过固定的步骤, 获取线上环境的信息, 一步一步逐步定位问题所在. X00. 判断问题影响范围 当突然接到线上报警, 应立即判断问题影响范围,如果直接导致服务不可用,则需立即响应(包括重启服务,或进行服务迁移扩容,正常情况下靠谱的运维不会让这个情况发生). 如果是高可用部署, 则联系运维同事, 切换流量到另外几台正常的机器(修改NGINX配置等),保留作案现场,进行分析定位问题. X01. 查看cpu top 查看cpu详细信息: 按1 查看负载 按cpu使用率排序: 按P 查看COMMAND详细信息: 按c top -H -p pid 查看某进程下的线程信息 X02. 查看内存 top 按内存排序: 按M free -h X03. 查看磁盘 df -h X04. 定位进程号 方法1 通过ps命令 例如: 服务名称为fcrm-c-rest 命令: ps -ef | grep 'fcrm-c-rest' 则可以查询到名称为fcrm-c-rest的进程号 方法2 通过top命令 敲击top命令后, 输入M 或 P 分别根据内存使用量排序, 和CPU使用量排序来进行定位线程号 方法3 通过jps命令 通过jps 命令获取当前执行的java进程 jps - Lists the instrumented Java Virtual Machines (JVMs) on the target system....

May 28, 2021 · 2 min · BlackChen

JMH 测试框架

开始使用 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <jmh.version>1.23</jmh.version> <dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-core</artifactId> <version>${jmh.version}</version> </dependency> <dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-generator-annprocess</artifactId> <version>${jmh.version}</version> <scope>provided</scope> </dependency> 可以使用maven archtype进行自动生成 样例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 @BenchmarkMode(Mode.Throughput) // 吞吐量 @OutputTimeUnit(TimeUnit.MILLISECONDS) // 结果所使用的时间单位 @State(Scope.Thread) // 每个测试线程分配一个实例 @Fork(2) // Fork进行的数目 @Warmup(iterations = 2) // 先预热4轮 @Measurement(iterations = 5) // 进行10轮测试 public class MyBenchmark { static AtomicInteger integer = new AtomicInteger(); @Benchmark public void testMethod() { integer....

April 3, 2020 · 5 min · BlackChen

VSCODE 删除行

删除其实是使用正则表达式替换 VSCODE 删除包含符串的行 删除包含INSERT的行 1 ^(.*)INSERT(.*)$\n VSCODE 删除空行 1 ^\s*(?=\r?$)\n

February 11, 2020 · 1 min · BlackChen

MySQL 获取时间相差13小时的问题

现象 : 获取数据时,接口返回的时间与实际的时间相差13个小时左右. 使用IDE查看数据库中的数据是正确的, 但是通过java程序获取出来之后, 时间异常. 经过一些资料查找, 发现 一次 JDBC 与 MySQL 因 “CST” 时区协商误解导致时间差了 14 或 13 小时的排错经历 这篇文章所描述的现象和遇到的相同. 主要是CST时区的问题. 1 2 3 4 5 6 7 8 mysql> show variables like '%time_zone%'; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | CST | | time_zone | SYSTEM | +------------------+--------+ 2 rows in set (0.00 sec) GMT(Greenwich Mean Time)代表格林尼治标准时间 而CST却同时可以代表如下 4 个不同的时区: 1 2 3 4 Central Standard Time (USA) UT-6:00 Central Standard Time (Australia) UT+9:30 China Standard Time UT+8:00 Cuba Standard Time UT-4:00 可见,CST可以同时表示美国,澳大利亚,中国,古巴四个国家的标准时间。...

October 9, 2019 · 1 min · BlackChen

java开发 常用Idea插件

IDEA 插件 GSON FORMATE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 { "filtered_count": 526, "item_count": 500, "items": [ { "arguments": {}, "auto_delete": false, "durable": true, "internal": false, "message_stats": { "publish_in": 3583, "publish_in_details": { "rate": 0.0 }, "publish_out": 3560, "publish_out_details": { "rate": 0.0 } }, "name": "", "policy": "ha_all", "type": "direct", "user_who_performed_action": "rmq-internal", "vhost": "/" } ], "page": 1, "page_count": 2, "page_size": 500, "total_count": 526 } 自动根据JSON生成对应的Bean 注意 注意字段类型 int,long的选取....

July 29, 2019 · 1 min · BlackChen