Автор Тема: Mysql problem with socket  (Прочетена 2933 пъти)

rat

  • Напреднали
  • *****
  • Публикации: 266
    • Профил
Mysql problem with socket
« -: Mar 31, 2006, 17:16 »
Здравейте,
Имам следния проблем с mysql :
1.Имам една машина на която вървят Apache , Mysql , PHP.
Натоварването на машината е доста сериозно (от 50 нагоре)
По някое време скриптовете не могат да се свържат през сокета към mysql като гърми с грешка :
Цитат
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (11)

Това означава "Resource temporary unavailable".(perror 11)

Сислно се съмнявам че свършват файловите дискриптори.

Ако се вържа към mysql през конзолта всичко си е наред но мисля че тогава не се позлва сокет а пайп.
Тоест Mysql не е умрял.

Та как мога да увелича броя на файловите дескриптори?
Ето малко статистика :

Примерен код
cat /proc/sys/fs/file-max
205992

Примерен код
cat /proc/sys/fs/file-nr
8325    0       205992

astronom

  • Напреднали
  • *****
  • Публикации: 254
    • Профил
Mysql problem with socket
« Отговор #1 -: Mar 31, 2006, 17:47 »
Цитат (rat @ Март 31 2006,17:16)
Ако се вържа към mysql през конзолта всичко си е наред но мисля че тогава не се позлва сокет а пайп.

Файл гнездо (socket file) и именован канал (named pipe) са едно и също. Файлът mysql.sock е Unix Domain Socket. Този файл е просто един именован канал. Няма разлика.
Активен

Г. Д. Сотиров

rat

  • Напреднали
  • *****
  • Публикации: 266
    • Профил
Mysql problem with socket
« Отговор #2 -: Mar 31, 2006, 17:53 »
Тогава вече нямам логично обяснение за случващото се ....
По принцип сървъра не умира. Просто скриптовете не мога да се свъжат през сокета. При по-малко натоварване на системата няма проблем.

  • Гост
Mysql problem with socket
« Отговор #3 -: Mar 31, 2006, 19:08 »
Мисля че има ограничение за броя на отворените файловете (вкл. и sockets) и май е 024 на процес за линукс ( а може и да е 4096 ). Не съм сигурен, че може да се променя динамично.
Активен

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Mysql problem with socket
« Отговор #4 -: Apr 01, 2006, 12:58 »
rpetrov, съвсем прав си.

# ulimit -n

при мен връща 1024 и няма начин да се променя динамично.

rat, погледни това: http://www.ussg.iu.edu/hypermail/linux/kernel/9701.0/0063.html
Активен

acidburn

  • Напреднали
  • *****
  • Публикации: 12
    • Профил
    • WWW
Mysql problem with socket
« Отговор #5 -: Apr 01, 2006, 13:39 »
преди време работих в 1 хостинг компания. там се получаваше подобен проблем...
с командата W нали се сещаш там излиза натоварването в някаква странна единица'<img'> когато стойността е над 10, тогава някои от сървисите просто оказваха, защото не стигаше процесорно време за тях.

същото беше се получило и с 1 рутер... като погледнеш с топ статистиките само 25% цпу се позлваше, но като видиш с "w" беше над 10 и имаше загуби в рутирането на пакетите.

ще пастенеш ли "w" какво ти казва? според мен ако е над 10 значи просто сървъра не издържа и ще трябва да ъпгрейднеш ':huh:'
Активен

Proud Official Slackware BG Mirror
Keep slackin' @ http://slackware.bgbits.com

rat

  • Напреднали
  • *****
  • Публикации: 266
    • Профил
Mysql problem with socket
« Отговор #6 -: Apr 02, 2006, 14:24 »
Цитат
ще пастенеш ли "w" какво ти казва? според мен ако е над 10 значи просто сървъра не издържа и ще трябва да ъпгрейднеш

Връща същото което връща и top .
По-горе съм написал че натоварването в тази "странна" единица  е над 50 (стигал съм до 126). Със сигурност сървърът не издържа...

Наркос:
Мерси за пача, но аз не се наемам да го правя '<img'> . Все пак съм само тъп девелопър  '<img'>
Ще видим какво са измислили и админите ...

  • Гост
Mysql problem with socket
« Отговор #7 -: Apr 03, 2006, 12:50 »
Относно броя на отворените файлове:
Има едни пра-стари функции fopen и т.н. Те изполват една структура FILE, в която номера на файла се записва в поле от тип  char. На ОС, на които това е така, се получава и едно ограничение от 256 отворени FILE-ове на процес.

rat сигурен ли си, че имаш твърде много връзки към базата ( netstat -x ... ) ?
Активен

hary

  • Напреднали
  • *****
  • Публикации: 73
    • Профил
Mysql problem with socket
« Отговор #8 -: Apr 06, 2006, 13:08 »
до колкото знам натоварването което се вижда с командата w , а и с другите команди vmstat top "load average" се тълкува така:
брой процеси които чакат за процесорно време

Явно при теб mysql-a не смогва и апачето чака много за заявки от което ти се вдига лоада.
Това че в грешката пише че не може да се свърже по сокет, не значи непременно че проблема е в сокета. Най-вероятно просто си стигнал max разрешени конекции. Т.е. докато се чака изпълнението на някаква заявка апачето продължава да отваря конекции къмм mysql-a докато не стигне мах.
Според мен трябва да оптимизираш настройките на mysql , като му дадеш повечко памет ( е ако нямаш , ще трябва да сложиш).Пример.Обърни внимание най-вече на:
set-variable    = key_buffer=196M
set-variable    = myisam_sort_buffer_size=64M
set-variable    = sort_buffer=1M
set-variable    = record_buffer=1M
set-variable    = thread_cache=8
Давай повечко памет, но все пак се съобразявай с наличната за да не нагазиш в суапа '<img'>

Твърде е възможно също проблема да идва от калпава SQL заявка или неиндексирана таблица, затова погледни с
mysqladmin -p processlist
, анализирай и виж коя е проблемната заявка или таблица.
Това е от мене '<img'>



Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
TCP/IP Socket commands
Общ форум
o2 7 3436 Последна публикация Jun 22, 2003, 00:18
от o2
INFO za Socket-ite
Общ форум
plamen_t 5 4349 Последна публикация Jul 27, 2004, 10:58
от
RS232 over TCP/IP socket или как да ...
Хардуерни и софтуерни проблеми
BRADATA 31 20477 Последна публикация Oct 04, 2017, 18:18
от pgmgm
TCP/IP и socket програмиране
Общ форум
nedy 3 3616 Последна публикация Nov 29, 2005, 22:28
от sdr
Mysql Socket Problem (Counter-Strike 1.6
Настройка на програми
BlackPearl 3 3943 Последна публикация Feb 11, 2012, 08:11
от romeo_ninov