Question

Désolé pour la question vague, mais je viens d'écrire un code php qui exécute lui-même comme CLI, et je suis sûr qu'il se conduit mal de. Quand je lance « top » sur la ligne de commande, il est montrant très peu de ressources données à un processus individuel, mais entre 40-98% en temps iowait (% wa). J'ai habituellement environ 0,7% réparti entre% et nous% sy, avec les ressources restantes vont aux processus ralenti (quelque part entre 20-50% habituellement).

Ce serveur exécute des requêtes MySQL, facilement, 300x le temps qu'il faut d'autres serveurs pour exécuter la même requête, et il faut même ce qui semble être une éternité pour se connecter via SSH ... donc, malgré qu'il y ait un peu de temps cpu ralenti reste, il semble clair que quelque chose de très mauvais se passe. Quels que soient les scripts sont en cours d'exécution, mettez à jour ma base de données MySQL, mais il semble être plus lent de façon exponentielle alors quand ils ont commencé.

J'ai besoin des idées pour servir de points de lancement pour moi de diagnostiquer ce qui se passe.

Il y a des choses que je voudrais savoir sont:

  1. Comment puis-je confirmer combien de scripts sont en cours d'exécution en fait
  2. Y at-il de toute façon de confirmer que ces scripts sont effectivement en train de fermer quand ils sont à travers, et pas seulement « traîner » prendre le temps de CPU et de la mémoire?
  3. Quel genre de goulots d'étranglement dois-je vérifierai pour vous assurer que je ne crée pas trop de cas de ce script si cela ne se reproduise pas.

Je sais que cela est probablement une question énorme, mais je suis plus que disposé à suivre les liens fournis et lire sur ce ... je juste besoin de savoir où commencer à chercher.

Était-ce utile?

La solution

Haute iowait peut signifier que vous avez un disque lent / défectueux. Essayez le vérifier avec un S.M.A.R.T. moniteur de disque.

http://www.linuxjournal.com/magazine/monitoring-hard -disks-smart

  1. ps auxww | grep SCRIPTNAME
  2. même.
  3. Pourquoi êtes-vous en cours d'exécution plus d'une instance de votre script pour commencer?

Autres conseils

Haut iowait signifie que votre bande passante de disque est saturé. Cela pourrait être juste parce que vous inonder votre serveur MySQL avec trop de requêtes, et il plafonnait le disque en essayant de charger les données pour les exécuter.

Vous pourriez être à court de mémoire physique, ce qui provoque de grandes quantités de disque IO pour échanger.

Pour commencer le diagnostic, exécutez vmstat 60 pendant 5 minutes et vérifier la sortie - le si et les colonnes de so montrent swap et échange-out, et les lignes de bi et bo afficher une autre IO. (Modifier votre question et coller la sortie dans plus d'aide).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top