Spark的性能调优

Spark

下面这些关于Spark的性能调优项,有的是来自官方的,有的是来自别的的工程师,有的则是我自己总结的。

基本概念和原则

首先,要搞清楚Spark的几个基本概念和原则,否则系统的性能调优无从谈起:

  • 每一台host上面可以并行N个worker,每一个worker下面可以并行M个executor,task们会被分配到executor上面去执行。Stage指的是一组并行运行的task,stage内部是不能出现shuffle的,因为shuffle的就像篱笆一样阻止了并行task的运行,遇到shuffle就意味着到了stage的边界。
  • CPU的core数量,每个executor可以占用一个或多个core

[……]阅读全文

JVM问题定位工具

VisualVMJDB

JDB是基于文本和命令行的调试工具,Jikes在JDB的基础上提供了GUI。熟悉JDB还是有价值的,很多情况下需要我们在命令行下完成简单的debug问题定位。

jdb -classpath bin com.xx.Example
jdb -connect com.sun.jdi.SocketAttach:hostname=myhost,port=8000
jdb -connect "com.sun.jdi.CommandLineLaunch:main=Hello 1 2 3"

我们可能更熟悉使用下面这样的方式来进行调试,但本质上就是在使用JDB:

-agentlib:jdwp=tran

[……]阅读全文

网站性能优化的三重境界

hold

这篇文章是关于网站性能优化体验的,性能优化是一个复杂的话题,牵涉的东西非常多,我只是按照我的理解列出了性能优化整个过程中需要考虑的种种因素。点到为止,包含的内容以浅显的介绍为主,如果你有见解能告知我那再好不过了。无论如何,希望阅读它的你有所收获。

 

我眼中的网站性能问题都反映了一个网站的“Availability”(中文叫做可用性,但是这个翻译也不足够达意),以往我的认识是,这个网站如果全部或者部分不可用,那是功能问题,但是如果响应慢、负载差,这才是性能问题;可是后来我逐渐意识到,性能问题涵盖的范围更广,我还没法给出一个准确定义,但是许多非业务逻辑

[……]阅读全文

back to top