LINUX.ORG.RU

Сообщения ares4322

 

Арендуемый сервер заграницей vs Colocation в Москве

Доброго времени суток!
Занимаюсь разработкой и эксплуатацие веб-систем.
В связи с увеличением нагрузки и усилением требований к надежности и безотказности работы системы планируется расширение инфраструктуры путем добавления серверов в систему и последующей настройкой репликации, кластеров и т.д.
В данный момент хостимся у Мастерхоста в европейском датаценте.
Какие есть преимущества и недостатки с точки зрения эксплуатации, а главное как соотносятся цены между арендуемыми серверами заграницей и colocation в Москве?
Сам я вижу, что colocation дороже хотя бы за счет необходимости в более грамотном админе.
Но при этом преимущество colocation в возможности более детальной кастомизации платформы под свои нужды (возможно, я ошибаюсь).
Лет 5 назад брать colocation было невыгодно из-за высокой цены трафика.

ares4322
()

HAProxy + TCP

Доброго времени суток!
Необходимо сделать дублирование tcp-траффика, приходящего в систему, на разные сервера. Ничего, кроме дублирования (например, управления нагрузкой и т.д.), делать не нужно.
Я хочу попробовать использовать HAProxy.
Подскажите, какие готовые решения подойдут для решения этой задачи?
Есть ли решение более подходящее, чем HAProxy?
Не могли бы помочь с конфигами для решения данной задачи?

 ,

ares4322
()

Не распаковывается архив

Доброго времени суток!
Распаковываю архив с бекапами.
Командой tar xvfz ./backup-2012-12-16_00\:12\:00.tar.gz.
Ничего не распаковывается, только выводятся пути к файлам из бекапа вида:
x home/server/backup/www/libraries/domit/xml_saxy_parser.php.
Что я делаю не так и как мне распаковать архив?

ares4322
()

Где хранится структура файловой системы?

Доброго времени суток!
Где хранится информация о файлах и папках в заданной папке: на диске или в памяти?
Я так понимаю, что есть некая таблица (вернее, должно быть, дерево), которая описывает структуру файловой системы и она хранится на диске. И при запросе, например, scandir, дергается диск и возвращается эта информация. Так ли это? Или все-таки вся эта структура загружается в память и все запросы адресуются памяти, а не диску?

Перемещено post-factum из general

ares4322
()

SSH с ключами через нестандартный внешний порт через и проброс портов на маршрутизаторе

Доброго времени суток!
Есть домашний комп, с которого хочу настроить ssh-доступ с помощью ключей на удаленную машину, сидящую за маршрутизатором, причем внешний порт для подключения на этом маршрутизаторе нестандартный - 2222.
В своих настройках в ~/.ssh/config прописал:
Host remote
HostName XXX.XXX.XXX.XXX
Port 2222
IdentityFile /home/username/.ssh/id_rsa
Но при соединении выводится сообщение:
Agent admitted failure to sign using the key.
И предлагается ввести пароль. Пароль ввожу и захожу на машину.

Что и где нужно прописать, чтобы в моем случае заработала авторизация по ключу?

ares4322
()

Установка и настройка PostgreSQL 9.1 на CentOS 5 из PGDG

Доброго времени суток!
На свежем удаленном сервере с CentOS 5 на борту поставил и настраиваю PostgreSQL 9.1 из PGDG. Установил в listen_address='*' в postgresql.conf и установил свой локальный IP в pg_hba.conf, но подсоединиться с удаленного хоста к БД не могу, пишет, что «нет пути до хоста», а с самого сервера через localhost и 127.0.0.1 все соединяется. В чем может быть проблема? Может какие-нибудь настройки самой ОС?

 

ares4322
()

Блокируемый ввод/вывод в многопоточном сервере

Доброго времени суток!
Представим, что у нас есть многопоточный сервер с блокируемым read(), который обрабатывает данные из TCP-соединений. Данные идут с промежутками, так что потоки периодически просто ждут данные из read().
Если для потока данных нет, то будет ли ОС переключаться на этот поток и какой-то промежуток времени ждать данные, или при отсутствии данных она даже не переключится на заблокированный поток?

ares4322
()

Сравнение Ubuntu Server и CentOS

Доброго времени суток!
Сразу поясню. Я разработчик, а не администратор. Но в связи с отсутствием последнего в компании приходится самому админить свои сервисы. Поэтому многих вещей я не знаю.
На рабочей машине стоит Ubuntu. И потому мне удобно иметь на своих серверах Ubuntu. Но, насколько я понимаю, CentOS популярнее, чем Ubuntu, на серверах. Объясните, пожалуйста, каковы объективные причины удобства (или, наоборот, неудобства) CentOS по сравнению с Ubuntu Server?

ares4322
()

Ubuntu и AMD Phenom

Доброго времени суток!
Дома есть ноутбук с Core2DUO 2.8 ГГц + Linux Mint.
На работе стационарный комп с AMD Phenom 2 X2 545 + Ubuntu 10.04 LTS.
Заметил, что дома, на более слабой машине, программы, которыми я пользуюсь на работе (Netbeans, например), работают быстрее.
Вывел на работе /proc/cpuinfo и обнаружил, что после загрузки компа там для обоих ядер стоит 3 ГГц, а через минуту появляется 800 МГц.
Нормально ли это и если нет, то в чем может быть причина такого поведения ОС?

ares4322
()

Настройка Ulimit

Доброго времени суток!
Есть необходимость в установке ненулевого размера core-файла для запускаемой программы. Добавил ulimit -c unlimited в скрипт запуска, который лежит в /etc/init.d. Программа падает, но файл не создается. Поправил файл /etc/security/limit.conf. Добавил строчку root soft core 100000.
Надо ли перезагружаться, чтобы эти изменения подхватились?
Может, можно как-то по-другому задать это значение?

ares4322
()

Почта на email вместо почты пользователю системы

Доброго времени суток!
Разбираюсь со smartmontools. Эта программы отсылает отчет на почтовый ящик пользователя системы, то есть в файл. Можно настроить пересылку этого письма на email и если можно, то как?

ares4322
()

Настройка поднятия двух сетевых интерфейсов при запуске системы

Доброго времени суток!

Есть сервер с CentOS 5 на борту. На сервере несколько сетевых карт. Как настроить автоматическое поднятие двух сетевых интерфейсов для двух сетевых карт со своими ip-адреcами при запуске системы?

ares4322
()

Средства мониторинга производительности

Доброго времени суток!
Есть сервер с CentOS на борту. Необходимо мониторить загруженность процессора, памяти, обращения к жестким дискам, к сети и т.д. Желательно, в реальном масштабе времени.
Подскажите, какими средствами это можно сделать?

ares4322
()

Ubuntu + Tomcat7 + 80port + init.d

Доброго времени суток!

На Ubuntu Server 10.04.2 LTS cтавлю Tomcat7. Устанавливаю и настраиваю для работы на 80м порту и для работы с автозагрузкой. Делаю как в http://blog.sozinov.eu/2009/09/tomcat-6-80.html (с локальными изменениями).
Проблема в том, что при запуске сервера через /etc/init.d/tomcat start сервер поднимается, но не читает файлов настроек из $CATALINA_HOME/conf и файлы веб-приложений. Если запускаю сервер от рута nohup $CATALINA_HOME/bin/catalina.sh start & , то все замечательно работает. Видимо, что-то не так с правами и пользователями, но я не знаю, что. Подскажите, что может быть не так.

ares4322
()

Отсутствие core-файла при падении программы

Доброго времени суток!
У меня написана на С серверная программа. Она завершает свою работу по непонятным причинам. Хотелось бы, чтобы появлялся при падении core-файл, но это не происходит. В программе стоит обработчик SIGTERM. Перед вызовом программы в скрипте запуска стоит «ulimit -c unlimited».
Должен ли при этих условиях появляться core-файл при аварийном завершении программы. Если нет, то почему? Если да, то какие возможные причины того, что у меня не появляется?

ares4322
()

Не хватает памяти

Доброго времени суток!
Есть сервер с 2 Гб ОЗУ. На нем стоит CentOS.
Основные рабочие приложения на нем: PostgreSQL, httpd, многопоточное приложение на C, tomcat.
Периодически, количество ОЗУ системы приближается к 100 Мб, хотя postgres и tomcat еще не запущены в эксплуатацию.
Подскажите, как можно вычислить процессы, которые забирают много памяти? Сам я смотрел по PID вышеперечисленные приложения, но они в сумме давали только половину от занятой памяти.

ares4322
()

pthread: утечка памяти или нормальная работа?

Доброго времени суток! есть такая тестовая программа


#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>

void* test_thread(void* arg);
extern int pthread_create (pthread_t *__restrict __newthread,
			   __const pthread_attr_t *__restrict __attr,
			   void *(*__start_routine) (void *),
			   void *__restrict __arg) __THROW __nonnull ((1, 3));
extern int pthread_cancel (pthread_t __th);

int main(int argc, char** argv) {
    pthread_t thread_id;
    pthread_t thread_id_array[1000];
    int err = 0;
    pthread_attr_t pthread_attr;
    int i = 0;
    char* ch=NULL;

    if ((err = pthread_attr_init(&pthread_attr)) != 0) {
        printf("pthread_attr_init() ERROR: %s\n", strerror(errno));
    }

    if ((err = pthread_attr_setdetachstate(&pthread_attr, PTHREAD_CREATE_DETACHED)) != 0) {
        printf("pthread_attr_init() ERROR: %s\n", strerror(errno));
    }

    printf("потоков нет, press any key \n");
    getc(stdin); //ждем ввода
    
    for (i = 0; i < 100; i++) { //создаем 1000 потоков
        if ((err = pthread_create(&thread_id,
                &pthread_attr,
                &test_thread,
                NULL)) != 0) //создаем новый поток и передаем в него указатель на функцию connection_thread
        {
            printf("pthread_attr_init() ERROR: can't create connection thread: %s\n", strerror(err));
        }
        printf("%i\n", i);
        thread_id_array[i] = thread_id;
        //sleep(1);
    }

    printf("100 потоков создано, press any key \n");
    getc(stdin); //ждем ввода

    for (i = 49; i < 100; i++) { //закрываем 1000 потоков
        if ((err = pthread_cancel(thread_id_array[i])) != 0) //создаем новый поток и передаем в него указатель на функцию connection_thread
        {
            printf("%i\n", i);
            printf("pthread_cancel() ERROR: can't create connection thread: %s\n", strerror(err));
        }
    }
    printf("50 потоков закрыто, press any key \n");
    getc(stdin); //ждем ввода

    for (i = 49; i < 100; i++) { //создаем 500 потоков
        if ((err = pthread_create(&thread_id,
                &pthread_attr,
                &test_thread,
                NULL)) != 0) //создаем новый поток и передаем в него указатель на функцию connection_thread
        {
            printf("pthread_attr_init() ERROR: can't create connection thread: %s\n", strerror(err));
        }
        printf("%i\n", i);
        thread_id_array[i] = thread_id;
    }

    printf("50 потоков создано, press any key \n");
    getc(stdin); //ждем ввода

    return EXIT_SUCCESS;
}

void* test_thread(void* arg) {
    sleep(3600); //час
    /*
        int i = 0;
        int j = 0;
        for (i = 0; i < 100000; i++) {
            j = i;
        }
     */
    //printf("pthread_attr_init() ERROR: can't create connection thread: %s\n", strerror(err));
    return;
}

так вот, если запустить ее под valgring memcheck:

==9843== Memcheck, a memory error detector
==9843== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al.
==9843== Using Valgrind-3.5.0-Debian and LibVEX; rerun with -h for copyright info
==9843== Command: ./threadtest
==9843== Parent PID: 8218
==9843== 
==9843== 
==9843== HEAP SUMMARY:
==9843==     in use at exit: 13,600 bytes in 100 blocks
==9843==   total heap usage: 152 allocs, 52 frees, 20,924 bytes allocated
==9843== 
==9843== 6,392 bytes in 47 blocks are possibly lost in loss record 1 of 2
==9843==    at 0x4023F5B: calloc (vg_replace_malloc.c:418)
==9843==    by 0x40109AB: _dl_allocate_tls (dl-tls.c:300)
==9843==    by 0x4046102: pthread_create@@GLIBC_2.1 (allocatestack.c:561)
==9843==    by 0x8048969: main (main.c:68)
==9843== 
==9843== 7,208 bytes in 53 blocks are possibly lost in loss record 2 of 2
==9843==    at 0x4023F5B: calloc (vg_replace_malloc.c:418)
==9843==    by 0x40109AB: _dl_allocate_tls (dl-tls.c:300)
==9843==    by 0x4046102: pthread_create@@GLIBC_2.1 (allocatestack.c:561)
==9843==    by 0x8048811: main (main.c:42)
==9843== 
==9843== LEAK SUMMARY:
==9843==    definitely lost: 0 bytes in 0 blocks
==9843==    indirectly lost: 0 bytes in 0 blocks
==9843==      possibly lost: 13,600 bytes in 100 blocks
==9843==    still reachable: 0 bytes in 0 blocks
==9843==         suppressed: 0 bytes in 0 blocks
==9843== 
==9843== For counts of detected and suppressed errors, rerun with: -v
==9843== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 17 from 10)

если посмотреть выделение памяти в программе с помощью top, то память, занимаемая после создания 50 потоков(в сумме 100) больше, чем начальное значение при 100 потоках. Я ожидал, что память при начальном создании 100 потоков и после закрытия -создания 50 потоков(в сумме 100) будет одинаковым. Вроде, делаю все правильно, почему такое происходит с памятью? Или так и должно быть?

ares4322
()

Настройка Apache httpd на разрешение входа с опр-х адресов

Доброго времени суток! Необходимо настроить Apache httpd на работу только с определенными ip-адресами. Настроен виртуальный хостинг. Я создаю в папке, к которой хочу ограничить доступ файл .htaccess. Вот его содержание:

Order Deny, Allow Deny from all Allow from XXX.XXX.XXX.XXX Redirect 301 httpdocs/index.html http://xxx:8080 Сервер отвечает такой страничкой:

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, akhudiakov@gmail.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

В чем может быть проблема?

ares4322
()

Получение сообщений о падении демона

Доброго времени суток! Я написал программу, которая запускается в фоне(через «nohup ./prg &»). Она не до конца отлажена и хотелось бы, чтобы сообщения о падении программы писались в файл, так как работает она в фоне. Как это сделать?

ares4322
()

RSS подписка на новые темы