[每日一氵] 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 …...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...
pycharm 设置环境出错
pycharm 设置环境出错 pycharm 新建项目,设置虚拟环境,出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...