[每日一氵] PySpark 的 log GC 部分是什么意思
2024-11-15T11:10:40.292+0800: 2850.503: [GC (Allocation Failure) [PSYoungGen: 142705K->3472K(141312K)] 1403514K->1264289K(1543168K), 0.0170225 secs] [Times: user=0.05 sys=0.00, real=0.01 secs]
这一行日志来自Java的垃圾收集器(Garbage Collector, GC),并且是在使用Spark时产生的。下面会逐一解释这一行日志中的各个部分:
-
时间戳:
2024-11-15T11:10:40.292+0800
这表示垃圾收集事件发生在2024年11月15日,时间是11:10:40.292,时区是+0800(即东八区,通常是中国、台湾、香港、澳门等地的时区)。 -
GC事件:2850.503: [GC (Allocation Failure)
2850.503:这是Java虚拟机(JVM)启动后的秒数,表示从JVM启动到这次GC事件发生已经过去了大约2850.503秒。
[GC (Allocation Failure):这表示发生了一次GC事件,原因是“分配失败”(Allocation Failure),即JVM在尝试为新对象分配内存时,发现没有足够的空间,从而触发了垃圾收集。
内存变化:[PSYoungGen: 142705K->3472K(141312K)] 1403514K->1264289K(1543168K)
PSYoungGen: 这是指“Parallel Scavenge Young Generation”,是Java堆内存中的年轻代部分。年轻代通常包含新创建的对象。
142705K->3472K(141312K): 这表示在GC之前,年轻代使用了142705K的内存,GC之后减少到了3472K。年轻代的总容量是141312K。
1403514K->1264289K(1543168K): 这表示整个Java堆在GC之前使用了1403514K的内存,GC之后减少到了1264289K。整个堆的总容量是1543168K。
耗时:0.0170225 secs -
这表示这次GC事件总共耗费了
0.0170225秒。
时间细节:[Times: user=0.05 sys=0.00, real=0.01 secs]
user=0.05: 这表示在用户模式下(即执行Java代码时)耗费了0.05秒。
sys=0.00: 这表示在系统模式下(即执行操作系统代码,如垃圾收集器本身)耗费了0.00秒。
real=0.01: 这表示从GC事件开始到结束实际经过的时间是0.01秒,这通常包括了等待时间和其他非计算开销。
2024-11-15T10:59:09.768+0800: 2159.978: [Full GC (Ergonomics) [PSYoungGen: 1952K->0K(123904K)] [ParOldGen: 1196156K->1165762K(1401856K)] 1198108K->1165762K(1525760K), [Metaspace: 161537K->161537K(1202176K)], 2.0533133 secs]
[Times: user=7.57 sys=0.01, real=2.05 secs]
-
时间戳: 2024-11-15T10:59:09.768+0800,发生在2024年11月15日 10:59:09。
-
GC类型: Full GC,表示发生了全局垃圾收集,这通常涉及到整个堆的清理。
-
触发原因: (Ergonomics),表明垃圾收集是基于JVM的自动调整策略触发的。
-
内存变化:
- PSYoungGen: 年轻代从1952K清理到0K。
- ParOldGen: 老年代从1196156K减少到1165762K。
- 总堆内存: 从1198108K减少到1165762K。
- Metaspace: 元空间大小未变,保持在161537K。
- 耗时: 2.0533133 secs,表明Full GC花费了大约2.05秒。
-
时间细节: 用户模式7.57秒,系统模式0.01秒,实际耗时2.05秒。这里的用户模式时间远大于实际耗时,可能是因为GC过程中多个线程并行工作。
2024-11-15T10:54:06.273+0800: 1856.484: [Full GC (System.gc()) [PSYoungGen: 2368K->0K(389632K)] [ParOldGen: 1052564K->1035143K(1197056K)] 1054932K->1035143K(1586688K), [Metaspace: 161469K->161469K(1202176K)], 2.7494377 secs] [Times: user=9.01 sys=0.03, real=2.75 secs]
- 时间戳: 2024-11-15T10:54:06.273+0800,发生在2024年11月15日 10:54:06。
- GC类型: Full GC,同样是全局垃圾收集。
- 触发原因: (System.gc()),表明垃圾收集是由System.gc()调用触发的,这通常是由应用程序或开发者显式调用的。
- 内存变化:
- PSYoungGen: 年轻代从2368K清理到0K。
- ParOldGen: 老年代从1052564K减少到1035143K。
- 总堆内存: 从1054932K减少到1035143K。
- Metaspace: 元空间大小未变,保持在161469K。
- 耗时: 2.7494377 secs,Full GC花费了大约2.75秒。
- 时间细节: 用户模式9.01秒,系统模式0.03秒,实际耗时2.75秒。这里的用户模式时间也远大于实际耗时。
2024-11-15T10:24:30.644+0800: 80.855: [GC (Metadata GC Threshold) [PSYoungGen: 87878K->7167K(194048K)] 115047K->44846K(422400K), 0.0238500 secs] [Times: user=0.08 sys=0.01, real=0.02 secs]
- 时间戳: 2024-11-15T10:24:30.644+0800,发生在2024年11月15日 10:24:30。
- GC类型: GC,这表明不是Full GC,可能是针对年轻代的垃圾收集。
- 触发原因: (Metadata GC Threshold),表明垃圾收集是由于元空间使用达到了某个阈值而触发的。
- 内存变化:
- PSYoungGen: 年轻代从87878K减少到7167K。
- 总堆内存: 从115047K减少到44846K(这里没有明确给出老年代的变化)。
- 耗时: 0.0238500 secs,这次GC事件非常快,仅耗时约0.02秒。
- 时间细节: 用户模式0.08秒,系统模式0.01秒,实际耗时0.02秒。这里的用户模式时间和实际耗时比较接近。
相关文章:
[每日一氵] PySpark 的 log GC 部分是什么意思
2024-11-15T11:10:40.2920800: 2850.503: [GC (Allocation Failure) [PSYoungGen: 142705K->3472K(141312K)] 1403514K->1264289K(1543168K), 0.0170225 secs] [Times: user0.05 sys0.00, real0.01 secs] 这一行日志来自Java的垃圾收集器(Garbage Collector, …...
Transformer中的算子:其中Q,K,V就是算子
目录 Transformer中的算子 其中Q,K,V就是算子 一、数学中的算子 二、计算机科学中的算子 三、深度学习中的算子 四、称呼的由来 Transformer中的算子 其中Q,K,V就是算子 “算子”这一称呼源于其在数学、计算机科学以及深度学习等多个领域中的广泛应用和特定功能。以下是…...
JWTUtil工具类
写一个Jwt工具类 导入如下pom.xml依赖 <!--fastjson依赖--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.33</version></dependency><!--jwt依赖--><dependenc…...
【eNSP】企业网络架构实验——vlan间的路由通信(三)
VLAN间的路由是指不同VLAN之间的通信,通常VLAN是用来分割网络流量和提高网络安全性的。 一、VLAN 1. 什么是VLAN? VLAN,全称是虚拟局域网(Virtual Local Area Network),是一种将物理局域网(LA…...
软件测试基础二十九 (接口测试 mock)
Mock(模拟) 一、定义 Mock是在软件开发测试阶段使用的一种技术,用于模拟对象的行为。它主要用于隔离被测试单元(如函数、类或模块)与外部依赖,使得测试更加独立、可控,并且可以在不需要真实外…...
Learning RAG and Ragas
说明:这是我的学习笔记,很多内容转自网络,请查阅文章末尾的参考资料。 文章目录 RAGRagas评估框架评估维度评估指标Faithfulness (忠实度)Answer Relevance (答案相关度)Context Precision (上下文精确度)Context Recall (上下文召回率)Cont…...
Java项目实战II基于微信小程序的实习记录(开发文档+数据库+源码)
目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 在当今竞争激烈的就业市场中࿰…...
GIT将源码推送新分支
1. 创建并切换到新分支 首先,确保你在本地创建了一个新的分支并切换到该分支: git checkout -b new-branch-namenew-branch-name 是你要创建的新分支名称,替换为你需要的名称即可。 2. 确保所有更改已提交 在推送之前,确保你的…...
Python习题 250:删除空文件夹
(编码题)编写一段 Python 代码,删除指定目录的空文件夹。 参考答案: 使用 pathlib 库可以更简洁地处理文件路径。下面是一个使用 pathlib 库递归删除空文件夹的 Python 代码:from pathlib import Pathdef remove_empty_dirs(directory):# 遍历目录及其子目录for path in…...
基本数据类型:Kotlin、Dart (Flutter)、Java 和 C++ 的比较
文章目录 基本数据类型的比较整数类型浮点类型字符类型布尔类型小结 有符号和无符号整数二进制补码表示精度丢失问题结论 在编程语言中,基本数据类型是构建更复杂数据结构的基础。在本文中,我们将比较 Kotlin、Dart (Flutter)、Java 和 C 中的基本数据类…...
源码解析-Spring Eureka(更新ing)
源码解析-Spring Eureka 文章目录 源码解析-Spring Eureka前言一、从Spring.factory和注解开始二、重要的一步EurekaServerInitializerConfiguration三、初始化了什么?自动保护 四, 重新回到EurekaServerAutoConfiguration 前言 无 一、从Spring.factory和注解开始…...
python调用百度通用翻译API
文章目录 1. 简介2. 使用步骤3. api调用实现4. 编码实现 1. 简介 前段时间在做视频语音识别生成多语种字幕时,使用了百度翻译通用翻译api进行翻译。百度翻译平台经过个人认证之后,每月有200万字符的免费翻译额度。还是比较舒服的。 百度翻译开放平台是百…...
Timeline动画「硬切」的问题
1)Timeline动画「硬切」的问题 2)移动平台纹理压缩格式选择ASTC,美术出图还需遵守POT吗 3)如何去掉DOTS Unity.Entities.Graphics创建的BatchRendererGroup的UI相机回调 4)Timeline播放动画会产生位移的问题 这是第409…...
CentOS 9 配置网卡
在 CentOS 9 中配置网卡,通常涉及以下几个步骤: 1. 查看网络接口 首先,确认系统上存在的网络接口。可以使用 ip 命令或 ifconfig 命令查看网络接口的状态。 ip a 或者: ifconfig 这将列出所有可用的网络接口(例如…...
redis7.x源码分析:(2) adlist双向链表
链表是一种常用的数据结构(如果不了解,请先学习数据结构),由于c语言本身没有实现标准的链表库,所以redis自己实现了一个双向链表。 双向链表在redis内部的使用非常的多,几乎所有模块中都有用到。 下面看下它…...
KUKU FM 音频Linux平台免费下载工具
1.工具名称:kuku-dl 功能: ✅ 下载播客、故事和有声读物! ✅ 获取所有元数据和封面艺术品。 ✅ 支持字幕! 3.使用说明: 3.1. 直接镜像github源码库 👉 git clone https://github.com/bunnykek/kuku-…...
《Django 5 By Example》阅读笔记:p105-p164
《Django 5 By Example》学习第5天,p105-p164总结,总计60页。 一、技术总结 1.文章标签功能 Django自带django-taggit。 2.自定义template tags 3.roadmap功能 4.RSS功能 5.full-text搜索功能 这里使用的是Postgresql,使用pip install psycopg安…...
网络延迟对Python爬虫速度的影响分析
Python爬虫因其强大的数据处理能力和灵活性而被广泛应用于数据抓取和网络信息收集。然而,网络延迟是影响爬虫效率的重要因素之一。本文将深入探讨网络延迟对Python爬虫速度的影响,并提供相应的代码实现过程,以帮助开发者优化爬虫性能。 网络…...
微信小程序内嵌h5页面(uniapp写的),使用uni.openLocation无法打开页面问题
1.问题 微信小程序内嵌h5页面(uniapp写的),使用uni.openLocation打开地图页面后,点击该页面下方“到这里”按钮,显示无法打开。如下图: 3.解决方案 在内嵌h5中不使用uniapp的api打开地图,而在h5页面事件处理程序中去跳转新的小程序页面,在该新页面去使用微信小程序…...
创建一个简单的基于STM32的FreeRTOS应用
使用STM32CubeIDE生成。 1,使能FreeRTOS 2,选择版本 CMSIS_V1 3 设置参数USE_NEWLIB_REENTRANT 如果不设置,会在生成代码的时候提示错误 4,设置时钟TIM1作为系统时钟 5,设置Task …...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
快速排序算法改进:随机快排-荷兰国旗划分详解
随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...
