Apache Doris的BE部分是由C++编写,当出现一些内存越界,非法访问的问题时会导致BE进程的Crash.这部分的问题常常较难排查,同时也很难快速定位到对应的触发SQL,给使用者带来较大的困扰.所以下面会介绍通过Linux的CoreDump快速定位到问题SQL,并复现问题的方式. 1.查看日志 当BE进程Crash的时候,可以先查看be.out日志,确认是否存在stack trace的记录.当BE出现进程Crash的时,都会将运行时的堆栈打印到be.out文件中,一般如下图所示: 但是由…
使用MAP文件快速定位程序崩溃代码行 =========================================================== 作者: lzmfeng(http://lzmfeng.itpub.net)发表于:2006.04.19 17:16分类: 摆脱程序 出处:http://lzmfeng.itpub.net/post/15253/70530-------------------------------------------------------------…
最近居家中,对自己之前做的一些工作进行总结.正好有Doris社区的小伙伴吐槽向量化的导入性能表现并不是很理想,就借这个机会对之前开发的向量化导入的工作进行了性能调优,取得了不错的优化效果.借用本篇手记记录下一些性能优化的思路,抛砖引玉,希望大家多多参与到性能优化的工作总来. 1.看起来很慢的向量化导入 问题的发现 来自社区用户的吐槽:向量化导入太慢了啊,我测试了xx数据库,比Doris快不少啊.有招吗? 啊哈?慢这么多吗? 那我肯定得瞅一瞅了. 于是对用户case进行了复现,发现用户测试的是代码…
最近一直在进行Doris的向量化计算引擎的开发工作,在进行CPU热点排查时,发现了存储层上出现的CPU热点问题.于是尝试通过SIMD的指令优化了这部分的CPU热点代码,取得了较好的性能优化效果.借用本篇手记记录下问题的发现,解决过程一些对于C/C++程序性能问题的一些解决思路,希望各位也能有所收获. 1.热点代码的发现 最近在进行Doris的部分查询调优工作,通过perf定位CPU执行热点时,发现了以下的热点部分: 这里通过perf可以看到,将近一半的CPU耗时损耗在BinaryDictPage…
笔者作为Apache Doris的开发者,平时感觉相关Doris的文章写的很少.主要是很多时候不知道应该去记录一些怎么样的问题,感觉写的不好就会很慌张.新的一年,希望记录自己在Doris开发过程之中所遇到一些有意思的事情.(只希望能坚持下来,别打脸~~) 言归正传,回到本篇想聊的问一个问题,笔者在开发ODBC of Doris的工作之中,发现通过MySQL 8.0的Driver连接Doris总是提示密码验证失败.但是由于开发工作繁忙,一直没有腾出手解决这个问题.最近重新抽时间梳理了一下这个问题,…
http://www.duoluodeyu.com/2009/17.html 设置IE代理.bat文件原文:将下面红色文字复制保存为.bat文件即可. 复制后将蓝色字体部分改成你要设置的代理服务器地址和端口号. @echo off title 自动设置代理服务器 echo 正在设置代理服务器…… reg add “HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings” /v ProxyEnable /t REG_DWOR…
我们平时查日志,在测试环境,日志文件只有几个的情况下,我们可以通过找时间接近的文件然后根据关键词定位报错位置,大不了都查一遍,这都可以忍受.但是在实际的生产环境下,服务器集群部署,每天的日志非常多非常多,每台机器都会有几十个甚至多达上百个.数百个日志文件产生.遇到问题需要查询日志时,你会发现如果一个个文件去查,你会崩溃掉.因为这是很费时的重复性工作,而且也不一定能查到. 为了解决这种问题,大多数人会去编写shell脚本,用来检索日志文件,这样能筛掉很多无用文件,减轻查日志的工作量.服务器集群部署…
一.使用流程 Windows下的程序运行崩溃时,往往可以利用pdb文件快速解析出程序崩溃的具体位置,甚至可以对应到源代码的具体行数.macOS下的symbolicatecrash也具备相应的功能.对应于Windows下的pdb文件,macOS下的crash文件解析需要用到dSYM文件.这个文件正常情况下可能不会生成,需要在XCode进行设置.当程序崩溃时,通过symbolicatecrash对crash文件和dSYM文件中的符号进行映射,即可将crash文件中的内存地址转换为可读的字符串.以前的…
前面几篇介绍了Web API的基础信息,以及如何基于混合框架的方式在WInform界面里面整合了Web API的接入方式,虽然我们看似调用过程比较复杂,但是基于整个框架的支持和考虑,我们提供了代码生成工具的整合,使得开发整套应用是非常方便和高效的.本文主要介绍如何利用代码生成工具Database2Sharp,如何迅速生成基于Web API的Winform应用. 1.代码生成工具的功能介绍 代码生成工具Database2Sharp,是我为整个开发过程开发的一款核心软件,已经走过了10个年头,随着开…
我们在做iOS开发过程中,静态页面的开发比开发动态页面更让我们开发者抓狂.因为动态页面通常是一个页面一种cell样式,作为开发者只需要专注于定制好一种样式之后,就可以使用数据填充出较好的界面.而静态cell,则可能因为一个页面有多种cell样式,而且很有可能不是标准的cell样式,需要我们自定义,因此容易写出来的代码容易臃肿和重复.可读性差.这不符合开发者的代码优化原则(不主动重复).我时常会因为开发这种页面抓狂,因为会纠结到底怎么写会让代码可读性好点,写重复代码的机会少点.本文就是我做过的几个…
前言 Compose是一个定义和运行多个Docker应用的工具,用一个YAML(dockder-compose.yml)文件就能配置我们的应用.然后用一个简单命令就能启动所有的服务.Compose编排Docker服务的优势是在单机测试场景,因为Compose的安装简单,开箱即用,yaml的定义也复用了Dockerfile的语法.但是集群中容器编排服务还是推荐K8S或者Mesos+Marathon这样的编排调度系统. 演示环境 $ uname -a Darwin Darwin Kernel Ver…
(私人收藏)[开发必备]最全Java离线快速查找手册(可查询可学习,带实例) https://pan.baidu.com/s/1L54VuFwCdKVnQGVc8vD1TQnwmj java手册 Java 入门教程 含有1个附件,如下: java-HelloWorld.gif Java 简介 Java 开发环境配置 Java 开发环境配置2 Java 基础语法 含有1个附件,如下: java-HelloWorld.gif Java 对象和类 Java 基本数据类型 Java 变量类型 Java…
1 背景 对于大部分的券商和机构投资者,只能通过有交易所交易系统接入资质的券商提供的柜台系统来进行现货交易.相对于期货市场,现货市场的柜台系统千差万别,接入协议有明文字符串.二进制数据和FIX协议等,接入方式有TCP连接.COM组件和dll动态库等.要想开发一个覆盖市面上所有的现货柜台的报盘系统,就必须能同时支持这些柜台的所有接入方式.在开发的过程中遇到的关于动态库版本兼容问题有以下几个: 同一柜台系统提供商发布了2套柜台系统,用于对接这2套系统的开发包是一样的,只是由于版本不同不能通用 不同柜…
1       案例描述 作为Windows程序员,平时最担心见到的事情可能就是程序发生了崩溃(异常),这时Windows会提示该程序执行了非法操作,即将关闭.请与您的供应商联系.呵呵,这句微软的“名言”,恐怕是程序员最怕见也最常见的东西了. 在一个大型软件的测试过程中,初期出现程序崩溃似乎成了不可避免的事.其实测试中出现程序崩溃并不可怕,反而是测试的成功.作为开发的我们更需要关心的是程序中的哪个函数或哪一行导致了系统崩溃,这样才能有针对性的进行改正. 本文描述了自己总结的几种定位崩溃的办法.…
以下内容均以Xilinx的Nexys3作为开发板   1.PS/2键盘简介 虽然Nexys3开发板是利用USB接口搭载键盘,但是其原理与PS/2键盘完全相同,现在就仅以PS/2键盘为例讲解如何将键盘搭载在开发板上.代码程序均在Nexys3上经过测试. PS/2标准键盘使用6个接口,各个接口定义如下:   1:DATA,数据信号 2:N.C.,不连接 3:GND,地 4:VCC,+5V电源 5:CLK,时钟 6:N.C.,不连接 而对于USB键盘,有用的接口只有两个CLK以及DATA,同时需要+5…
本文转载自: http://blog.csdn.net/sky_qing/article/details/8548989 如果在测试过程中遇到某个进程的CPU利用率过高或者卡死而需要去调试该进程时,可以利用gdb命令生成coredump文件,然后再去调试coredump文件来定位问题. 那么如何使用gdb生成coredump文件呢?其实步骤很简单: 1. 安装好gdb,然后使用命令 'gdb'.(假设需要调试的进程号为 21509) 2. 使用 ‘attach 21590’命令将gdb附加到进程…
app开发中如何利用sessionId来实现服务端与客户端保持回话 这个问题太过于常见,也过于简单,以至于大部分开发者根本没有关注过这个问题,我根据和我沟通的开发者中,总结出来常用的方法有以下几种: (个人觉得不简单么) 一:服务端默认的session 这种方式最大的优点是服务端不用增加任何代码,但APP与网站不同,通常情况下,我们会希望APP的登陆状态能维持数天,甚至数月之久,大部分的服务端程序,都会在进程重启时或客户端多久不活动时,将session全部清空,致使状态丢失 二.在客户端记录登陆…
LinFx 一个基于 .NET Core 2.0 开发的简单易用的快速开发框架,遵循领域驱动设计(DDD)规范约束,提供实现事件驱动.事件回溯.响应式等特性的基础设施.让开发者享受到正真意义的面向对象设计模式来带的美感. LinFx.Extensions Caching.DapperExtensions.Elasticsearch.EventBus.Metrics.Mongo.RabbitMQ 特性 领域驱动设计(DDD) 事件驱动架构 (EDA) 事件回溯 (ES) 最终一致性 (Eventu…
介绍Notepad++的文章很多,我这里就不赘述了.简言之,是一个轻便的文本编辑工具.结合丰富的插件,可以实现很多功能,可以成为一个轻量级的IDE,用来做脚本开发非常合适. 这里介绍几个插件可以用来进行文件定位.(所有插件都可以在Notepad++的菜单栏 插件->Plugin Manager->Show Plugin Manager里面找到) 第一个是Explorer 这个插件很多用Notepad++的人应该很熟悉了,可以通过展开文件夹找到特定文件.当然很难说是快速定位,左下角的Filter…
Express: ?web application framework for?Node.js? Express 是一个简洁.灵活的 node.js Web 应用开发框架, 它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用. 目录 此文重点介绍Express4.x(具体是4.10.4)的开发框架,其中还会涉及到Mongoose,Ejs,Bootstrap等相关内容. 建立工程 目录结构 Express4.x配置文件 Ejs模板使用 Bootstrap界面框架 路由功能 Sessio…
可以设置产生coredump文件,设置dump文件命名非格式,生成dump文件的路径: linux # set suid_dumpable on if [ -e /proc/sys/kernel/suid_dumpable ]; then   echo 1 > /proc/sys/kernel/suid_dumpable else   echo 1 > /proc/sys/fs/suid_dumpable fi # create core directory if [ -d $CORE_DUM…
目录 1,前言 2,.env文件的作用 3,配置.env文件 4,配置启动命令 5,获取.env中的全局变量 5,实际用处 1,前言 分享一下vue项目中利用.env文件存储全局环境变量,以及利于项目开发的vue启动以及打包命令. 2,.env文件的作用 在vue项目中,env是全局配置文件,可以存储不同环境下的变量.使用vue-cli搭建项目,默认会在根目录创建一个.env文件,如果需要更多类型的.env文件,需要自行创建. 其中: 1,.env 后缀的文件是全局默认配置文件,不论什么环境都会…
iOS开发拓展篇—封装音频文件播放工具类 一.简单说明 1.关于音乐播放的简单说明 (1)音乐播放用到一个叫做AVAudioPlayer的类 (2)AVAudioPlayer常用方法 加载音乐文件 - (id)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError; - (id)initWithData:(NSData *)data error:(NSError **)outError; 准备播放(缓冲,提高播放的流畅性) -…
CentOS版本 cat /etc/centos-release  CentOS Linux release 7.2.1511 (Core) 设置ulimit -c ulimited 依旧无法生成coredump文件,其中也检查了cat /proc/sys/kernel/core_pattern 及/etc/abrt/abrt-action-save-package-data.conf 设置. 网上报出类似错误[https://access.redhat.com/solutions/218144…
来源:http://www.ido321.com/1123.html 今天get了一招:利用.htaccess文件对PHP网站或文件进行伪静态处理. 一.检查服务器是否支持伪静态处理: 必 须要空间支持 Rewrite 以及对站点目录中有 .htaccess 的文件解析,才有效.找到apache安装目录下的httpd.cof文件,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#(大概在154行,我的默认是开启) 二.在httpd.cof…
gdb 调试coredump文件过程: 第一步:首先需要一个进程的coredump文件,怎么搞出coredump文件呢? 1. ps -fax|grep                 进程名称 找到进程的pid 2.gdb -p pid                     调试进程 3.gcore coredump名称        则生成core文件 第二步:找出coredump文件的应用程序 1.gdb -c corefile   使用gdb调试core文件 2.info auxv  …
[分享]源代码&开发手记:SAE应用"车百科" (Python + SAE + Bottle + Bootstrap) - Bottle - Python4cn(news, jobs) [分享]源代码&开发手记:SAE应用"车百科" (Python + SAE + Bottle + Bootstrap)…
用c++开发基于tcp协议的文件上传功能 2005我正在一家游戏公司做程序员,当时一直在看<Windows网络编程> 这本书,把里面提到的每种IO模型都试了一次,强烈推荐学习网络编程的同学阅读,比 APUE 讲的更深入 这是某个银行广告项目(p2p传输视频)的一部分 IO模型采用的阻塞模式,文件一打开就直接上传 用vc 2003编译,生成win32 dll 麻雀虽小五脏俱全,CSimpleSocket,CReadStream dll 输出一虚类 extern "C" __d…
原文:控件注册 - 利用资源文件将dll.ocx打包进exe文件(C#版) 很多时候自定义或者引用控件都需要注册才能使用,但是如何使要注册的dll或ocx打包到exe中,使用户下载以后看到的只是一个exe,点击直接运行呢?就像很多安全控件,如支付宝的aliedit.exe那样. 现在介绍一种使用资源文件,将dll.ocx打包进exe,点击直接注册的例子: 首先,新建一个工程RegisterFile.  新建文件夹Resource,里面添加需要注册的ocx或dll.这里我添加的是dsoframer…
这里插入一下安装"view in browser"官方版的说明:(前提是得先安装package control插件) 1.通过"ctrl+shift+p"打开命令面板 2.输入"install package"打开安装插件面板 3.输入"view in browser"后通过鼠标左键单击或者回车键进行安装 4.察看SublimeText左下角状态栏了解是否安装成功 最后,就说下小觉现在所使用的方法: 1.在SublimeTex…