httpd привязать к ядру

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

lexikon
Сообщения: 128

httpd привязать к ядру

Сообщение lexikon »

как можно привязать httpd к определенному ядру?
вообще можно ли так поступить? :blush:

Код: Выделить всё

start() {
        echo -n $"Starting $prog: "
        LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch ${lockfile}
        return $RETVAL
}

куда впихать taskset -c 0

да и еще вопросик заодно уж
в вебмине вижу следующее
Максимальное число зарезервированных процессов сервера 20
Число начальных процессов сервера 8
не многовато ли 20 процессов апача? ^^
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: httpd привязать к ядру

Сообщение rm_ »

куда впихать taskset -c 0

После ${pidfile} и перед $httpd попробуйте.

не многовато ли 20 процессов апача? ^^

Если посещаемость мала, вполне разумно и снизить их кол-во.
"Мала" - это, скажем так, меньше 20-ти посещений в секунду. :)
Спасибо сказали:
lexikon
Сообщения: 128

Re: httpd привязать к ядру

Сообщение lexikon »

хмм после данной модификации перестал подниматься апач автоматически приходится запускать вручную :(

заодно бы еще mysql туда же привязать :)

Код: Выделить всё

start(){
    touch "$errlogfile"
    chown mysql:mysql "$errlogfile"
    chmod 0640 "$errlogfile"
    [ -x /sbin/restorecon ] && /sbin/restorecon "$errlogfile"
    if [ ! -d "$datadir/mysql" ]; then
        # First, make sure $datadir is there with correct permissions
        if [ ! -e "$datadir" -a ! -h "$datadir" ]
        then
        mkdir -p "$datadir" || exit 1
        fi
        chown mysql:mysql "$datadir"
        chmod 0755 "$datadir"
        [ -x /sbin/restorecon ] && /sbin/restorecon "$datadir"
        # Now create the database
        action $"Initializing MySQL database: " /usr/bin/mysql_install_db --datadir="$datadir" --user=mysql
        ret=$?
        chown -R mysql:mysql "$datadir"
        if [ $ret -ne 0 ]; then
        return $ret
        fi
    fi
    chown mysql:mysql "$datadir"
    chmod 0755 "$datadir"
    # Pass all the options determined above, to ensure consistent behavior.
    # In many cases mysqld_safe would arrive at the same conclusions anyway
    # but we need to be sure.  (An exception is that we don't force the
    # log-error setting, since this script doesn't really depend on that,
    # and some users might prefer to configure logging to syslog.)
    # Note: set --basedir to prevent probes that might trigger SELinux
    # alarms, per bug #547485
    /usr/bin/mysqld_safe   --datadir="$datadir" --socket="$socketfile" \
        --pid-file="$mypidfile" \
        --basedir=/usr --user=mysql >/dev/null 2>&1 &
    safe_pid=$!
    # Spin for a maximum of N seconds waiting for the server to come up;
    # exit the loop immediately if mysqld_safe process disappears.
    # Rather than assuming we know a valid username, accept an "access
    # denied" response as meaning the server is functioning.
    ret=0
start(){
    touch "$errlogfile"
    chown mysql:mysql "$errlogfile"
    chmod 0640 "$errlogfile"
    [ -x /sbin/restorecon ] && /sbin/restorecon "$errlogfile"
    if [ ! -d "$datadir/mysql" ]; then
        # First, make sure $datadir is there with correct permissions
        if [ ! -e "$datadir" -a ! -h "$datadir" ]
        then
        mkdir -p "$datadir" || exit 1
        fi
        chown mysql:mysql "$datadir"
        chmod 0755 "$datadir"
        [ -x /sbin/restorecon ] && /sbin/restorecon "$datadir"
        # Now create the database
        action $"Initializing MySQL database: " /usr/bin/mysql_install_db --datadir="$datadir" --user=mysql
        ret=$?
        chown -R mysql:mysql "$datadir"
        if [ $ret -ne 0 ]; then
        return $ret
        fi
    fi
    chown mysql:mysql "$datadir"
    chmod 0755 "$datadir"
    # Pass all the options determined above, to ensure consistent behavior.
    # In many cases mysqld_safe would arrive at the same conclusions anyway
    # but we need to be sure.  (An exception is that we don't force the
    # log-error setting, since this script doesn't really depend on that,
    # and some users might prefer to configure logging to syslog.)
    # Note: set --basedir to prevent probes that might trigger SELinux
    # alarms, per bug #547485
    /usr/bin/mysqld_safe   --datadir="$datadir" --socket="$socketfile" \
        --pid-file="$mypidfile" \
        --basedir=/usr --user=mysql >/dev/null 2>&1 &
    safe_pid=$!
    # Spin for a maximum of N seconds waiting for the server to come up;
    # exit the loop immediately if mysqld_safe process disappears.
    # Rather than assuming we know a valid username, accept an "access
    # denied" response as meaning the server is functioning.
    ret=0
    STARTTIMEOUT=120
    while [ $STARTTIMEOUT -gt 0 ]; do
        RESPONSE=`/usr/bin/mysqladmin --socket="$socketfile" --user=UNKNOWN_MYSQL_USER ping 2>&1` && break
        echo "$RESPONSE" | grep -q "Access denied for user" && break
        if ! /bin/kill -0 $safe_pid 2>/dev/null; then
        echo "MySQL Daemon failed to start."
        ret=1
        break
        fi
        sleep 1
        let STARTTIMEOUT=${STARTTIMEOUT}-1
    done
    if [ $STARTTIMEOUT -eq 0 ]; then
        echo "Timeout error occurred trying to start MySQL Daemon."
        ret=1
    fi
    if [ $ret -eq 0 ]; then
        action $"Starting $prog: " /bin/true
        touch /var/lock/subsys/mysqld
    else
        action $"Starting $prog: " /bin/false
    fi
    return $ret
}
    STARTTIMEOUT=120
    while [ $STARTTIMEOUT -gt 0 ]; do
        RESPONSE=`/usr/bin/mysqladmin --socket="$socketfile" --user=UNKNOWN_MYSQL_USER ping 2>&1` && break
        echo "$RESPONSE" | grep -q "Access denied for user" && break
        if ! /bin/kill -0 $safe_pid 2>/dev/null; then
        echo "MySQL Daemon failed to start."
        ret=1
        break
        fi
        sleep 1
        let STARTTIMEOUT=${STARTTIMEOUT}-1
    done
    if [ $STARTTIMEOUT -eq 0 ]; then
        echo "Timeout error occurred trying to start MySQL Daemon."
        ret=1
    fi
    if [ $ret -eq 0 ]; then
        action $"Starting $prog: " /bin/true
        touch /var/lock/subsys/mysqld
    else
        action $"Starting $prog: " /bin/false
    fi
    return $ret
}
Спасибо сказали:
Аватара пользователя
Frank
Сообщения: 1059
ОС: Ubuntu, Debian

Re: httpd привязать к ядру

Сообщение Frank »

Потому что надо указывать полные пути к исполняемым файлам, это вам не баш с поиском по $PATH.
Изображение
Спасибо сказали:
lexikon
Сообщения: 128

Re: httpd привязать к ядру

Сообщение lexikon »

а подробнее можно? :blush:
Спасибо сказали:
Аватара пользователя
Frank
Сообщения: 1059
ОС: Ubuntu, Debian

Re: httpd привязать к ядру

Сообщение Frank »

fqc:/home/frank# which touch
/usr/bin/touch
Вот и пишем - не touch "$errlogfile", а /usr/bin/touch "$errlogfile"
И так по всему скрипту.
Изображение
Спасибо сказали:
lexikon
Сообщения: 128

Re: httpd привязать к ядру

Сообщение lexikon »

fqc:/home/frank# which touch
/usr/bin/touch
Вот и пишем - не touch "$errlogfile", а /usr/bin/touch "$errlogfile"
И так по всему скрипту.

это я так понял в mysql скрипте, а я имел ввиду httpd скрипт :(
LANG=$HTTPD_LANG daemon --pidfile=${pidfile} /bin/taskset -c 0 $httpd $OPTIONS

не работает :) автоматически почему то скрипт не загружается при ребуте и ошибок нет никаких оО
[root@localhost ~]# chkconfig --list httpd
httpd 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
Спасибо сказали: