L'ajustement des performances Spark consiste à modifier les paramètres de mémoire, de cœurs et d'instances utilisés par le système. Ce processus permet à Spark d'offrir des performances irréprochables et prévient la formation de goulets d'étranglement dans les ressources de Spark. 
Pour réduire la consommation de mémoire, vous aurez peut-être à stocker les RDD Spark sous forme sérialisée. La sérialisation des données est également gage de bonnes performances réseau. Pour obtenir de bons résultats dans Spark :
Spark prend en charge deux bibliothèques de sérialisation :
Trois aspects dominent l'ajustement de la consommation de la mémoire :
Une option pour réduire la consommation de mémoire consiste à éviter les fonctionnalités Java les plus coûteuses. Il y a plusieurs manières de procéder :
Pour éviter l'attrition importante associée aux RDD précédemment stockés par le programme, Java élimine les anciens objets pour faire de la place aux nouveaux. Il est toutefois possible d'utiliser des structures de données comprenant un nombre inférieur d'objets pour réduire considérablement les coûts. Pour prendre un exemple, pensez à un tableau d'entiers à la place d'une liste liée. Vous pouvez également utiliser des objets sous forme sérialisée, de façon à n'avoir qu'un seul objet pour chaque partition RDD.
De bonnes performances reposent avant tout sur une utilisation efficace de la mémoire. Spark utilise principalement la mémoire à des fins de stockage et d'exécution. La mémoire de stockage permet de mettre en cache des données qui seront réemployées par la suite. D'autre part, la mémoire d'exécution sert à effectuer des calculs pour les shuffles, les tris, les jointures et les agrégations. La contention de mémoire pose trois difficultés à Apache Spark :
Au lieu d'éviter de réserver statiquement la mémoire à l'avance, vous pouvez gérer la contention de la mémoire lorsqu'elle se produit en forçant un déversement.
