Maison  >  Questions et réponses  >  le corps du texte

服务器IO问题(疑似Redis导致的)

某生产环境服务器(多个服务都安装在1台服务器上)

服务器负载一致居高不下,升级过硬件以后有好转,CPU和内存的有所缓解,不过磁盘IO的依然如故;

使用nmon查看由多块磁盘组成一个LVM分区,写一直是100%;

使用lsof查看,该分区的主要读写的是MySQL和Redis;

使用iotop查看io排行,前几个分别是:

[jbd2/dm-0-8]
[flush-253:0]
[redis]
[mysql]

对前2个进程不太了解,有没有那位比较熟悉的大神指点下,前2个进程的用途以及他们和Redis的IO优化建议;

PHP中文网PHP中文网2736 Il y a quelques jours732

répondre à tous(2)je répondrai

  • 高洛峰

    高洛峰2017-04-24 09:15:53

    Pour résoudre ce problème, considérez trois aspects :
    1. Couche d'application

    .
    • Surveillance de l'état de Redis pour voir s'il y a des problèmes de performances des applications

    • Surveillance de l'état MySQL, affichage des journaux de requêtes lentes et d'autres points problématiques associés

    2. La couche système
    flush-253:0 et jbd2/dm-0-8 sont les processus du système d'exploitation qui gèrent réellement le disque et le système de fichiers. couche applicative.

    3. Matériel
    Vérifier l'état du disque, les problèmes matériels du serveur

    répondre
    0
  • 黄舟

    黄舟2017-04-24 09:15:53

    J'ai rencontré le problème de high redis io, qui est lié à la sauvegarde du mode rdb
    configuration par défaut de redis
    save 900 1
    save 300 10
    save 60 10000
    Qu'est-ce que ci - dessus signifie ,
    Au moins une modification a été apportée au service en 900 secondes ou
    Au moins 10 modifications ont été apportées au serveur en 300 secondes ou
    Au moins 10 000 modifications ont été apportées au serveur en 60 secondes
    Déclenchez une sauvegarde.
    La méthode rdb consiste à transférer le processus principal dans un processus enfant, puis à enregistrer toutes les données du processus enfant sur le disque.
    Dans les autres. Autrement dit, par exemple, si vous avez un Redis occupant 10 Go de mémoire, toutes les 900 secondes au maximum, toutes les données de cette mémoire de 10 Go seront enregistrées sur le disque si la capacité d'E/S de votre appareil est faible ou si la quantité de données Redis est faible. plus grand, il ne sera pas terminé dans un cycle de sauvegarde, dans ce cas, il continuera à sauvegarder, ce qui entraînera un io élevé.
    La solution peut être
    1 Prolongez le cycle de sauvegarde redis.
    2 Divisez Redis et n'enregistrez pas trop de fichiers dans un seul processus Redis Données multiples.
    3 Essayez d'utiliser la méthode aof.

    répondre
    0
  • Annulerrépondre