性能优化

Hive性能优化

帅比萌擦擦* 提交于 2020-01-26 17:27:17
http://www.cnblogs.com/smartloli/ 1.概述   这个标题也是用血的教训换来的,希望对刚进入hive圈的童鞋和正在hive圈爬坑的童鞋有所帮助。打算分以下几个部分去描述: Hive的结构 Hive的基本操作 Hive Select Hive Join Hive UDF Hive的M/R 使用Hive注意点 优化及优化详情 优化总结 调优的经常手段 解决Hive问题的途径   这篇文章只是起个头,为描述其他部分做下准备。下面我赘述下Hive的结构和一些基本的操作。 2.介绍    Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。   首先,我来说说什么是hive(What is Hive?),请看下图:   由于是在Retina下截的屏,为避免网络原因显示不出图片,这里为也用文字描述以下。这个和介绍中描述的内容大致是一致的

ORACLE SQL性能优化系列 (一)

久未见 提交于 2020-01-26 09:00:37
1. 选用适合的 ORACLE 优化器 ORACLE 的优化器共有 3 种 : a. RULE ( 基于规则 ) b. COST ( 基于成本 ) c. CHOOSE ( 选择性 ) 设置缺省的优化器 , 可以通过对 init.ora 文件中 OPTIMIZER_MODE 参数的各种声明 , 如 RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在 SQL 句级或是会话 (session) 级对其进行覆盖 . 为了使用基于成本的优化器 (CBO, Cost-Based Optimizer) , 你必须经常运行 analyze 命令 , 以增加数据库中的对象统计信息 (object statistics) 的准确性 . 如果数据库的优化器模式设置为选择性 (CHOOSE), 那么实际的优化器模式将和是否运行过 analyze 命令有关 . 如果 table 已经被 analyze 过 , 优化器模式将自动成为 CBO , 反之 , 数据库将采用 RULE 形式的优化器 . 在缺省情况下 ,ORACLE 采用 CHOOSE 优化器 , 为了避免那些不必要的全表扫描 (full table scan) , 你必须尽量避免使用 CHOOSE 优化器 , 而直接采用基于规则或者基于成本的优化器 . 2. 访问 Table 的方式 ORACLE

Java性能优化

こ雲淡風輕ζ 提交于 2020-01-26 07:55:10
随着系统数据量的不断增长, 访问量的不断提升, 系统的响应通常会越来越慢, 又或是编写的新的应用在性能上无法满足需求, 这个时候需要对系统的性能进行调优, 调优过程是构建高性能应用的必备过程, 也是一个相当复杂的过程, 而且涉及到了很多的方面, 硬件、操作系统、 运行环境软件以及应用本身, 要实现调优, 首先需要做的是找到性能低的根本原因, 然后才是针对性的进行调优, 本章节就来介绍下寻找性能瓶颈以及调优的一些技术上的方法。 CPU 消耗分析 当 CPU 消耗过高时, 对于多线程的 Java 应用而言, 最明显的性能影响是线程执行业务处理的速度大幅度下降。 在分析 Java 应用中什么动作造成了 CPU 的消耗时, 首先需要找到的为消耗了 较多 CPU资源的线程, 然后根据所消耗的 CPU 的类型并结合线程 dump 来找到造成 CPU 资源消耗高的具体原因。 在 linux 中, 可通过 top 或 pidstat 方式来查看进程中线程的 CPU 的消耗状况。 top 输入 top 命令后即可查看 CPU 的消耗情况, CPU 的信息在 TOP 视图的上面几行中, 图示如下: 在此需要关注的为 Cpu 那行的信息, 其中 4.0% us 表示的为用户占用了 4%的 CPU 时间,主要为所运行的应用程序对 CPU 的消耗; 8.9% sy 表示的为系统占用了 8.9%的 CPU

最后的性能优化策略[关闭]

大憨熊 提交于 2020-01-25 09:17:09
这个网站上已经有很多性能问题,但我发现几乎所有问题都是针对特定问题而且相当狭窄。 几乎所有人都重复这些建议,以避免过早优化。 我们假设: 代码已经正常工作 所选择的算法对于问题的情况已经是最佳的 已经测量了代码,并且已经隔离了违规的例程 所有优化尝试也将被测量,以确保它们不会使事情变得更糟 我在这里寻找的是在一个关键算法中挤出最后几个百分点的策略和技巧,除此之外别无他法。 理想情况下,尝试使答案语言不可知,并在适用的情况下指出建议策略的任何缺点。 我将使用我自己的初步建议添加回复,并期待Stack Overflow社区可以想到的任何其他内容。 #1楼 我花了一些时间来优化在低带宽和长延迟网络(例如卫星,远程,离岸)上运行的客户端/服务器业务系统,并且能够通过相当可重复的过程实现一些显着的性能改进。 措施 :首先了解网络的基础容量和拓扑。 与业务中的相关网络人员交谈,并利用ping和traceroute等基本工具在典型的运营期间(至少)建立每个客户端位置的网络延迟。 接下来,对显示有问题症状的特定最终用户功能进行准确的时间测量。 记录所有这些测量值,以及它们的位置,日期和时间。 考虑在客户端应用程序中构建最终用户“网络性能测试”功能,允许高级用户参与改进过程; 当你处理因表现不佳的系统而感到沮丧的用户时,像这样赋予他们权力可能会产生 巨大的 心理影响。 分析

web性能优化之GZIP压缩

て烟熏妆下的殇ゞ 提交于 2020-01-25 05:43:17
从服务端优化来说,通过对服务端做压缩配置可以大大减小文本文件的体积,从而使加载文本的速度成倍的加快。目前比较通用的压缩方法是启用gzip压缩。它会把浏览器请求的页面,以及页面中引用的静态资源以压缩包的形式发送到客户端,然后在客户端完成解压和拼装.下图是使用相关工具检测没有开启网页压缩的效果。 检测地址: http://www.whatsmyip.org/http-compression-test/?url=d3d3LmZlbmd6aWdhbWUuY29t windows下apache开启GZIP 实现步骤: 1.找到并打开apache/conf目录中的httpd.conf文件 2.httpd.conf中打开deflate_Module和headers_Module模块,具体做法为将 如下两句前面的#去掉:   LoadModule deflate_module modules/mod_deflate.so   LoadModule headers_module modules/mod_headers.so 3.在httpd.conf文件底部加入如下代码配置需要压缩的文件: <IfModule mod_deflate.c> SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/plain

MySQL性能优化 -- 服务器配置优化

落花浮王杯 提交于 2020-01-25 05:34:26
常用查看性能参数的方法 show variables:查看服务器一些静态的参数,如缓冲区大小,字符集,数据文件名称等信息。 show rariables:查看的是MySQL启动之前已经配置号的一些系统静态参数。 show status:查看服务器运行中的状态信息,如当前连接数,锁等状态信息。 1、key_buffer_size的设置: 该参数用来设置索引块缓存的大小,只使用于MyISAM存储引擎,对MyISAM表性能影响最大的一个参数。 MySQL5.1以后提供多个key_buffer,可以将指定的表索引缓存到指定的key_buffer中,这样可以更好的降低线程之间的竞争。 常用操作: 查询缓存大小:show variables like ‘key_buffer_size’; 设置多个key_buffer:set global hot_cache2.key_buffer_size=128*1024; 将相关表的索引放到指定的索引缓存中:cache index t,t2 in hot_cache2; 将表t的索引加载到默认的缓存中:load index into cache t; 删除索引缓存:set global hot_cache2.key_buffer_size=0; 值得注意的是,不能删除默认的索引缓存区! cache index可以将多个表的索引加载到指定的索引缓冲区中

性能优化浅谈

守給你的承諾、 提交于 2020-01-25 02:50:00
不知不觉已经正式上班大半年了,去年的这个时候刚开博客不久,希望能伴随自己成长。在大半年的学习和工作中,自己也在一步步的开始沉静,越加觉得自己才疏学浅,也倍感前端知识博大精深。 这次总结主要关于性能优化探索心得。水平很浅,只是说说自己的学习收获。 ************这里开始了************* 看过的前端开发书籍都在说这四个字,性能优化的字面解释是:不影响系统运行正确性的前提下,使之运行地更快,完成特定功能所需的时间更短。这句话可以看出性能优化的目的:更快的速度、更少的时间。 1)性能优化有什么意义? 谷歌的数据表明,一个有10条数据0.4秒可以加载完的页面,在变成30条数据加载时间为0.9秒后,流量和广告收入减少了20%。当谷歌地图的首页文件大小从100kb减少到70~80kb时,流量在第一周涨了10%,接下来的三周涨了25%。腾讯的前端工程师根据长期的数据监控也发现页面的一秒钟延迟会造成9.4%的PV的下降,8.3%跳出率的增加以及3.5%转化率的下降。这两家公司都是行业的翘楚,具有极其巨大的用户群,这些数据足够让我们重视性能优化。近八成的用户可以忍受的响应时间为5秒,500PC的主站打开资源加载完毕的时间为5.67s,QQ彩票为12.75s,网易彩票为16.79,看到这里还是很骄傲的*_*。   2)如何优化? 资料显示和浏览器调试分析发现

前端性能优化利器!实时查看各种性能指标,定位问题不再困难

夙愿已清 提交于 2020-01-24 14:30:19
写在前面 使用chrome开发者工具进行性能分析,是作为前端开发者的一个必不可少的技能。但这也需要开发者对性能缺陷有足够的敏感性。才能察觉出程序中存在的问题。 如果某天你发现自己写的程序运行缓慢,你可能需要查看一下是否是DOM元素过多,这时候你就F12打开控制台,并且输入下面的代码,查看DOM元素的总数是否过大: $$('*').length// 或者是document.querySelectorAll('*').length 结果发现并不是DOM元素的问题。于是你又开始怀疑是不是window对象上挂载了太多的事件监听(EventListeners),于是你再次打开控制台,输入下面的代码,查看window对象上都挂载了哪些事件处理函数: getEventListeners(window) 结果你可能有发现并不是事件监听过多的问题。这时,你又怀疑到了是否是CPU占用率过高,导致了JS执行缓慢呢?于是你又打开chrome开发工具,切换到性能面板(performance),对运行时的代码做一段记录,然后查看结果: 通过对summary视图的分析,你可能会怀疑是否是CPU占用过高? 综上,chrome确实也提供了一系列的功能方便我们来定位可能存在的性能问题。但是上面提到的这个查找过程显得过于盲目了,不能很快速的定位了问题的原因。 主角登场 为了解决上面我提出的问题,我们今天的主角闪亮登场了

mysql性能优化

旧街凉风 提交于 2020-01-24 13:46:15
数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情 1.为查询缓存优化你的查询 mysql> show variables like '%query_cache%'; (query_cache_type 为 ON 表示已经开启) +------------------------------+----------+ | Variable_name | Value | +------------------------------+----------+ | have_query_cache | YES | | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 20971520 | | query_cache_type | ON | | query_cache_wlock_invalidate | OFF | +------------------------------+----------+ 如果不是ON,修改配置文件以开启查询缓存: > vi /etc/my.cnf [mysqld]中添加: query_cache_size = 20M #缓存的大小

性能优化-Tomcat8优化

倾然丶 夕夏残阳落幕 提交于 2020-01-24 01:44:46
1、Tomcat8优化 tomcat服务器在JavaEE项目中使用率非常高,所以在生产环境对tomcat的优化也变得非常重要了。 对于tomcat的优化,主要是从2个方面入手,一是,tomcat自身的配置,另一个是 tomcat所运行的jvm虚拟机的调优。 下面我们将从这2个方面进行讲解。 1.1 Tomcat配置优化 1.1.1、部署安装tomcat8 下载并安装: https://tomcat.apache.org/download-80.cgi cd /tmp wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat‐ 8/v8.5.34/bin/apache‐tomcat‐8.5.34.tar.gz tar ‐xvf apache‐tomcat‐8.5.34.tar.gz cd apache‐tomcat‐8.5.34/conf #修改配置文件,配置tomcat的管理用户 vim tomcat‐users.xml #写入如下内容: <role rolename="manager"/> <role rolename="manager‐gui"/> <role rolename="admin"/> <role rolename="admin‐gui"/> <user username="tomcat"