Optimisation prédictive des performances du système sous architecture NUMA

Crédit image : unsplash.com/photos/Rguf…

Auteur : Yu Feng

1. Origines

Dans le domaine de la recommandation, la logique hiérarchique classique se compose de trois couches : rappel, agencement fin et réarrangement. La couche d'arrangement fin est sans aucun doute la partie la plus complexe et la plus difficile. Service de raisonnement en ligne.

Après plus de trois ans d'itération continue, le système actuel de prédiction de musique en ligne sur le cloud a été connecté à plusieurs modèles de scène, notamment la musique, la recherche, la diffusion en direct et les activités innovantes.

La logique principale du système d'estimation se compose de trois parties :

  • Requête de fonctionnalités : interrogez les utilisateurs, les scénarios, les éléments et d'autres fonctionnalités du stockage distribué en fonction de l'activité, et préparez la prochaine étape d'extraction de fonctionnalités après analyse ;
  • Extraction de caractéristiques : selon les caractéristiques d'entrée définies par le modèle, calculez une par une les caractéristiques renvoyées par la requête de l'étape précédente et convertissez-les dans le format de données requis par le modèle, tel que l'incorporation, le hachage, etc. ;
  • Raisonnement vers l'avant : saisissez les données après l'extraction des caractéristiques dans la bibliothèque d'apprentissage automatique, et après une série d'opérations telles que des opérations matricielles, affichez enfin le score d'un utilisateur pour un élément ;

Parmi les trois étapes, la requête de fonctionnalité est intensive en E/S et les deux autres étapes sont gourmandes en CPU. Surtout dans l'étape d'inférence directe, un grand nombre d'opérations telles que la multiplication de matrices doivent être effectuées, et il y a beaucoup de mémoire l'application et la logique de lecture et d'écriture pendant cette période.

À l'heure actuelle, le système de prédiction en ligne de musique en nuage déploie des dizaines de clusters de réseaux et des centaines de machines physiques en ligne. La machine Xeon E5 à 56 cœurs a été principalement utilisée dans la phase initiale du lancement du système. La machine Xeon Gold à 96 cœurs a été achetée l'année dernière. Les configurations spécifiques des deux modèles sont les suivantes :

En comparant les deux configurations de modèles, la puissance de calcul de la machine haut de gamme est au moins le double de celle de la machine bas de gamme. Cependant, les performances de l'opération en ligne et les données des tests de résistance quotidiens montrent que la capacité de traitement métier réelle des machines haut de gamme n'augmente pas de manière linéaire et qu'il y a une perte de performances importante.

Le tableau suivant compare les capacités de traitement métier des deux modèles de scénario sur les deux modèles :

2. Architecture NUMA

Lorsque la puissance de calcul d'un processeur monocœur ne peut répondre à la demande croissante de puissance de calcul, les fabricants de processeurs commencent à évoluer vers le multicœur.

L'architecture de serveur autonome a évolué d'une architecture à accès mémoire cohérent (UMA) à une architecture à accès mémoire non uniforme (NUMA).

在UMA架构中,多路CPU无主次关系,共享内存、总线、操作系统等资源,此时每个CPU访问内存任何地址所耗费的时间是相等的。由于所有CPU共享内存,导致了单机的扩展能力有限,随着CPU数量增加,内存访问冲突也会大大增加。

为了进一步提高单机CPU数量,同时还能保证计算资源利用率,于是NUMA架构出现,通过牺牲内存的访问延时来提高机器的扩展性。

在NUMA架构中,每个CPU都有本地内存,同时可以通过高速交换矩阵实现其他CPU本地内存的访问。这种架构的特点就是CPU访问自己的本地内存速度非常高,但是访问远端的CPU本地内存因为需要经过的总线更长,延时也会有相应的增加。

通过lscpu命令查看,当前线上的服务器都是配置的2个CPU节点的NUMA架构,接下来将会测试是否是NUMA架构的访存特性,导致在高配机器上单机处理能力无法达到预期的提升一倍的问题。

3. 亲核性测试

为验证在NUMA架构下的亲核性对预估系统性能的影响,决定对单机三种部署方式进行测试:单节点、双节点不绑核、双节点绑核。绑核通过使用Linux操作系统上的numactl命令来实现。

测试的模型选择了一个复杂场景(模型A)和简单场景(模型B),测试这两个模型在三种不同的部署方式下,CPU利用率达到60%时,单机的请求处理能力。

3.1 低配机器测试结果

模型 A:

模型 B:

双节点绑核相对于单节点部署方式有10%~20%左右的单机请求量提升,但是模型A在双节点绑核部署方式上平均耗时也增加约10%;同时在模型B上,双节点不绑核相对于单节点部署方式,反而单机请求量降低了10%。

总体上看,在低配机器上,NUMA架构的亲核性对系统的性能影响不明显,主要原因是因为计算资源还比较少,预估系统产生的访存竞争不大。

3.2 高配机器测试结果

模型 A:

模型 B:

无论在模型A还是模型B,双节点绑核相较于单节点部署,单机请求处理能力有比较明显提升,分别带来了75%和49%的提升;同时双节点不绑核性能表现最差,主要是因为双节点的线程数相较于单节点有较大增加,导致了访存的竞争、线程切换开销更为明显。

4. Conclusion de l'essai

Par rapport à la méthode de déploiement à nœud unique sur la machine à profil bas, la machine à profil haut adopte la méthode de déploiement de noyau à double nœud, qui apporte une amélioration des performances de 169% et 112% sur le modèle A et le modèle B respectivement, ce qui est en ligne avec l'augmentation des ressources de calcul, il est prévu que la capacité de traitement des requêtes augmente d'autant en cas de doublement.

L'amélioration des performances sur la machine haut de gamme est plus évidente que celle de la machine bas de gamme. Les performances des trois méthodes de déploiement sont classées : liaison à deux nœuds principaux > nœud unique > liaison à deux nœuds sans cœur .

Cet article est publié par l'équipe NetEase Cloud Music Technology, et toute forme de réimpression de l'article est interdite sans autorisation. Nous recrutons toutes sortes de postes techniques tout au long de l'année. Si vous êtes prêt à changer de travail et que vous aimez la musique en nuage, rejoignez-nous à [email protected] .

Acho que você gosta

Origin juejin.im/post/7099389085126492197
Recomendado
Clasificación