From 93aeda2817d8687a334aec86ef6fc95e5fbe3769 Mon Sep 17 00:00:00 2001 From: weic Date: Thu, 23 Jan 2025 13:46:25 +0800 Subject: [PATCH] 1 --- .../API\347\275\221\345\205\263/APISIX.md" | 2 + .../API\347\275\221\345\205\263/OpenResty.md" | 2 + docs/study/db/SQL/OpenGauss.md | 23 ++ ...0\347\273\264-\345\270\270\347\224\250.md" | 10 +- docs/study/net/iptables.md | 20 +- docs/study/program/JAVA/JDK17-bin.md | 211 ++++++++++-------- 6 files changed, 167 insertions(+), 101 deletions(-) diff --git "a/docs/study/back/API\347\275\221\345\205\263/APISIX.md" "b/docs/study/back/API\347\275\221\345\205\263/APISIX.md" index ef5fa6baa..a61642207 100644 --- "a/docs/study/back/API\347\275\221\345\205\263/APISIX.md" +++ "b/docs/study/back/API\347\275\221\345\205\263/APISIX.md" @@ -304,7 +304,9 @@ gdb attach {PID} strings -n 12 37.211_72508c9b2000-72508e933000_20250105145100.dump ``` +### Nginx变量 +https://nginx.org/en/docs/varindex.html # 参考 diff --git "a/docs/study/back/API\347\275\221\345\205\263/OpenResty.md" "b/docs/study/back/API\347\275\221\345\205\263/OpenResty.md" index dcf698244..81c22fbb1 100644 --- "a/docs/study/back/API\347\275\221\345\205\263/OpenResty.md" +++ "b/docs/study/back/API\347\275\221\345\205\263/OpenResty.md" @@ -7,3 +7,5 @@ OpenResty® 的目标是让你的Web服务直接跑在 Nginx 服务内部,充 https://openresty.org/cn/ +https://github.com/openresty/openresty + diff --git a/docs/study/db/SQL/OpenGauss.md b/docs/study/db/SQL/OpenGauss.md index f17fd351e..997148a33 100644 --- a/docs/study/db/SQL/OpenGauss.md +++ b/docs/study/db/SQL/OpenGauss.md @@ -129,4 +129,27 @@ echo -e "\pset format unaligned\nSHOW ALL;" > show_all.sql gsql -p 5432 -U sansec -W passwordxxx -f show_all.sql ``` +### 处理内存不足异常 + +https://docs.opengauss.org/zh/docs/5.0.0/docs/DatabaseOMGuide/%E5%86%85%E5%AD%98%E4%B8%8D%E8%B6%B3%E9%97%AE%E9%A2%98.html + +```shell +# 默认可以使用5432端口登录 +gsql -p 5432 -U username_xxx -W pwd_xxx -d instance_name +# 如果内存不足登录不了,可以使用5433端口(端口+1)登录 +gsql -p 5433 -U username_xxx -W pwd_xxx -d instance_name +# 报错了,没调通 +select * from gs_total_memory_detail; +# +select contextname, sum(totalsize)/1024/1024 sum, sum(freesize)/1024/1024, count(*) count from gs_shared_memory_detail group by contextname order by sum desc limit 10; +# +select contextname, sum(totalsize)/1024/1024 sum, sum(freesize)/1024/1024, count(*) count from gs_session_memory_detail group by contextname order by sum desc limit 10; + +``` + +### 数据库进入只读模式 + +https://docs.opengauss.org/zh/docs/5.0.0/docs/DatabaseOMGuide/%E7%A3%81%E7%9B%98%E7%A9%BA%E9%97%B4%E8%BE%BE%E5%88%B0%E9%98%88%E5%80%BC-%E6%95%B0%E6%8D%AE%E5%BA%93%E5%8F%AA%E8%AF%BB.html + + diff --git "a/docs/study/devops/Linux\350\277\220\347\273\264-\345\270\270\347\224\250.md" "b/docs/study/devops/Linux\350\277\220\347\273\264-\345\270\270\347\224\250.md" index 60ef64209..eca35d649 100644 --- "a/docs/study/devops/Linux\350\277\220\347\273\264-\345\270\270\347\224\250.md" +++ "b/docs/study/devops/Linux\350\277\220\347\273\264-\345\270\270\347\224\250.md" @@ -202,6 +202,8 @@ telnet 172.19.74.146 9200 netstat -tulnp | grep ':端口号' ss -tulnp | grep ':端口号' ps -f -p 99382|cat +# 根据IP排序 +netstat -an | awk '{print $5}' | awk -F ':' '{print $1}' | grep -v '^[^0-9]' | sort | uniq -c | sort -nr | head -n 10 ``` ### vi/vim 中文乱码 @@ -317,7 +319,7 @@ ipcs命令主要显示消息队队列、共享内存和信号量的信息。这 ipcs # 只显示信号量 nsems信号量集中的信号量数 ipcs -s -# 只显示内存 +# 只显示共享内存 其中nattch=0表示此共享内存占用进程为0但是未被回收,可通过ipcs -m [shmid]来回收 ipcs -m # 只显示消息队列 ipcs -q @@ -419,3 +421,9 @@ HISTFILESIZE=0 - [csdn-ulimit命令详解:如何设置和查看系统资源限制](https://blog.csdn.net/llgde/article/details/133780294) +### kill好多进程 + +```shell +ps -ef|grep nginx |grep -v grep|awk '{print $2}'|xargs kill -9 +``` + diff --git a/docs/study/net/iptables.md b/docs/study/net/iptables.md index 8abb0fea1..720dbdecb 100644 --- a/docs/study/net/iptables.md +++ b/docs/study/net/iptables.md @@ -1 +1,19 @@ -# Linux iptables 防火墙 +# Linux iptables 防火墙 + +```shell +# 列出当前iptables中的所有规则 +iptables -L +# +展示IP和端口 +iptables -L -n +# +数据包和字节计数器 +iptables -L -v +# 展示入口 出口 +iptables -L INPUT/OUTPUT/FORWARD +## 规则在 iptables 的链中的顺序很重要,因为 iptables 会按顺序检查规则。-I 会将规则插入到链的头部,-A 会将规则添加到链的尾部,-D 会删除规则。不同的插入或添加顺序可能会导致不同的网络访问结果,特别是当有其他相关的规则存在时。 +# 表示从 INPUT 链中删除一条规则。 +iptables -D INPUT -p tcp --dport 26379 -s $ip -j ACCEPT +# 表示将一条规则插入到 INPUT 链的头部。 +iptables -I INPUT -p tcp --dport 26379 -s $ip -j ACCEPT +# 表示将一条规则添加到 INPUT 链的尾部。 +iptables -A INPUT -p tcp --dport 26379 -s $ip -j ACCEPT +``` \ No newline at end of file diff --git a/docs/study/program/JAVA/JDK17-bin.md b/docs/study/program/JAVA/JDK17-bin.md index c62b098e9..272d4acff 100644 --- a/docs/study/program/JAVA/JDK17-bin.md +++ b/docs/study/program/JAVA/JDK17-bin.md @@ -1,99 +1,112 @@ -# JDK17-bin - -### jar - -操作 jar 文件,包括新建、查看内容、解压、添加文件等 - -### jarsigner - -jarsigner 命令是 Java 开发工具中用于对 JAR 文件进行签名的重要工具之一。它通过数字签名实现身份验证和保证应用程序的完整性,提供了应用程序发布和分发的安全性。但它也引入了额外的复杂性和一些操作步骤。通过理解和正确使用 jarsigner,可以提高 Java 应用程序的安全性和用户的信任度。 - -总的来说,jarsigner 为 Java 应用程序提供了一种有效的方式来验证应用程序的来源和完整性,帮助建立用户和开发者之间的信任关系。 - -### java - -### javac - -### javadoc - -### javap - -### jcmd - -### jconsole - -jconsole 提供了可视化的方式来获取有关 Java 应用程序的各种信息,包括内存使用情况、线程活动、GC 行为等重要指标。它还允许远程连接到运行中的 Java 进程,提供对远程应用程序的监控和管理能力。 - -### jdb - -### jdeprscan - -### jdeps - -### jfr - -### jhsdb - -### jimage - -### jinfo - -Java Configuration Info :查看配置参数信息,支持部分参数运行时修改 - -### jlink - -### jmap - -Java Memory Map :分析堆内存工具,导出 dump 堆内存快照 - -```shell -jmap -dump:live,format=b,file=heap.bin -``` - -### jmod - -### jpakcage - -### jps - -JVM Process status tool:JVM 进程状态工具,查看进程基本信息 - -用的不多 - -### jrunscript - -### jshell - -### jstack - -Java Stack Trace :Java 堆栈跟踪工具 - -可以生成 JVM 当前时刻的线程快照,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 - -```shell -jstack -l {PID} > jstack-dump.log -``` - -然后 放到 [fastthread.io](https://fastthread.io/) 分析 - -### jstat - -JVM statistics monitoring tool : JVM 统计监控工具,查看堆,GC 详细信息 - -先用他分析 GC 问题,包括 GC 次数、GC 时间、GC 原因、GC 前后堆内存变化 - -### jstatd - -### keytool - -### rmiregistry - -### serialver - -### 其他分析工具 - -- [VisualVM](https://visualvm.github.io/) 远程需要配合 jstatd 使用 -- [GCEasy:免费 GC 日志可视化分析 Web 工具](https://gceasy.io/) -- [Eclipse MAT:Memory Analyzer Tool 可视化内存分析工具](https://eclipse.dev/mat/downloads.php) -- [GCViewer:开源的 GC 日志分析工具](https://github.com/chewiebug/GCViewer) -- [ Alibaba Arthas:线上 Java 程序诊断工具,功能非常强大](https://github.com/alibaba/arthas/blob/master/README_CN.md) +# JDK17-bin + +### jar + +操作 jar 文件,包括新建、查看内容、解压、添加文件等 + +### jarsigner + +jarsigner 命令是 Java 开发工具中用于对 JAR 文件进行签名的重要工具之一。它通过数字签名实现身份验证和保证应用程序的完整性,提供了应用程序发布和分发的安全性。但它也引入了额外的复杂性和一些操作步骤。通过理解和正确使用 jarsigner,可以提高 Java 应用程序的安全性和用户的信任度。 + +总的来说,jarsigner 为 Java 应用程序提供了一种有效的方式来验证应用程序的来源和完整性,帮助建立用户和开发者之间的信任关系。 + +### java + +### javac + +### javadoc + +### javap + +解释: + +javap:是 Java 的类文件反汇编器,用于解析 .class 文件并输出其信息。 + +-private:显示所有类和成员,包括私有的。如果你只想看公共的,可以使用 -public 选项。 + +-classpath your-jar-file.jar:指定类路径,也就是你的 JAR 包的位置。 + +com.example.YourClass:是你要查看的类的全限定名。 + +```shell +javap -private -classpath etcdwrapper-2.6.4.2-SNAPSHOT.jar com.sansec.ccsp.ServiceEtcdStub +``` +### jcmd + +### jconsole + +jconsole 提供了可视化的方式来获取有关 Java 应用程序的各种信息,包括内存使用情况、线程活动、GC 行为等重要指标。它还允许远程连接到运行中的 Java 进程,提供对远程应用程序的监控和管理能力。 + +### jdb + +### jdeprscan + +### jdeps + +### jfr + +### jhsdb + +### jimage + +### jinfo + +Java Configuration Info :查看配置参数信息,支持部分参数运行时修改 + +### jlink + +### jmap + +Java Memory Map :分析堆内存工具,导出 dump 堆内存快照 + +```shell +jmap -dump:live,format=b,file=heap.bin +``` + +### jmod + +### jpakcage + +### jps + +JVM Process status tool:JVM 进程状态工具,查看进程基本信息 + +用的不多 + +### jrunscript + +### jshell + +### jstack + +Java Stack Trace :Java 堆栈跟踪工具 + +可以生成 JVM 当前时刻的线程快照,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 + +```shell +jstack -l {PID} > jstack-dump.log +``` + +然后 放到 [fastthread.io](https://fastthread.io/) 分析 + +### jstat + +JVM statistics monitoring tool : JVM 统计监控工具,查看堆,GC 详细信息 + +先用他分析 GC 问题,包括 GC 次数、GC 时间、GC 原因、GC 前后堆内存变化 + +### jstatd + +### keytool + +### rmiregistry + +### serialver + +### 其他分析工具 + +- [VisualVM](https://visualvm.github.io/) 远程需要配合 jstatd 使用 +- [GCEasy:免费 GC 日志可视化分析 Web 工具](https://gceasy.io/) +- [Eclipse MAT:Memory Analyzer Tool 可视化内存分析工具](https://eclipse.dev/mat/downloads.php) +- [GCViewer:开源的 GC 日志分析工具](https://github.com/chewiebug/GCViewer) +- [ Alibaba Arthas:线上 Java 程序诊断工具,功能非常强大](https://github.com/alibaba/arthas/blob/master/README_CN.md)