хороший ssh2 в php - PullRequest
       9

хороший ssh2 в php

3 голосов
/ 16 января 2012

У меня есть скрипт php, который передает кучу файлов между серверами с расширением pecl ssh2 (по большей части ssh2_sftp_*).Эти файлы в сумме составляют примерно каждый концерт.Пропускная способность ограничена, так что это не проблема.Проблема в том, что процесс ssh2 израсходует тонну процессора и фактически замедляет работу сервера во время загрузки.Есть ли способ запустить процесс ssh на определенном хорошем уровне?Если ssh2 функции php создают новый процесс (я не уверен, что они это делают), возможно ли найти и renice этот процесс, как только он был запущен из скрипта php?Поскольку функции ssh2 не являются многопоточными, их, вероятно, нет.

По сути, я бы хотел, чтобы функции ssh2 PHP не использовали так много ЦП.Кажется, что proc_nice сделает это, но, похоже, мне придется использовать ionice вместо этого.Как я могу это сделать?

1 Ответ

1 голос
/ 16 января 2012

Краткий обзор источников PEAR :: ssh2 показывает, что функции SSH2 выполняются в потоке и в процессе, поэтому реального прямого пути не существует. Вот две возможности:

  • Если вы используете многопроцессный Apache, используйте proc_nice для уменьшения приоритет, затем apache_child_terminate, чтобы убить процесс.
  • Используйте proc_open или друзей, чтобы открыть шеллскрипт типа
#!/bin/bash
read SRCFILE
read DSTFILE
nice scp "$SRCFILE" "$DSTFILE"

Мы используем последний для довольно большого количества задач с загрузкой процессора

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...