> thats very smart to post in russian to an ENGLISH OONLY list! Sorri, i not speak english ---------------------------- Прошу извинить меня, но я не говорю по английски.
I have described as could, mistake cost(stand)s that. hereon appeared drain to memories, I happened to to overload server ------------- Ошибка стоила того, чтобы сообщить о ней - после выполнения скрипта на серевере возникла утечка памяти, что вынудило меня выполнить его перезагрузку. before reboot: ============== top - 18:24:15 up 1 day, 7:48, 2 users, load average: 0.18, 0.50, 0.41 Tasks: 197 total, 1 running, 195 sleeping, 0 stopped, 1 zombie Cpu0 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si Cpu1 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si Cpu2 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si Cpu3 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 3631768k total, 2994160k used, 637608k free, 54348k buffers ^^^^^^^^^^^ mysql NOT RUN, more process also shutdown Swap: 979924k total, 0k used, 979924k free, 611848k cached after reboot: ============= top - 18:38:38 up 3 min, 1 user, load average: 0.01, 0.03, 0.00 Tasks: 77 total, 2 running, 75 sleeping, 0 stopped, 0 zombie Cpu0 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si Cpu1 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si Cpu2 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si Cpu3 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 3631768k total, 56132k used, 3575636k free, 2204k buffers ^^^^^^^ MySQL until it is loaded top - 18:44:08 up 9 min, 1 user, load average: 1.29, 0.35, 0.12 Tasks: 113 total, 1 running, 111 sleeping, 0 stopped, 1 zombie Cpu0 : 3.0% us, 4.0% sy, 0.0% ni, 0.0% id, 92.4% wa, 0.0% hi, 0.7% si Cpu1 : 0.0% us, 0.3% sy, 0.0% ni, 94.0% id, 5.6% wa, 0.0% hi, 0.0% si Cpu2 : 0.3% us, 0.0% sy, 0.0% ni, 99.7% id, 0.0% wa, 0.0% hi, 0.0% si Cpu3 : 0.0% us, 0.3% sy, 0.0% ni, 84.4% id, 15.3% wa, 0.0% hi, 0.0% si Mem: 3631768k total, 358352k used, 3273416k free, 10776k buffers ^^^^^^^ MySQL is loaded top - 18:52:01 up 16 min, 2 users, load average: 6.07, 3.74, 1.70 Tasks: 208 total, 2 running, 206 sleeping, 0 stopped, 0 zombie Cpu0 : 2.0% us, 1.7% sy, 0.0% ni, 88.1% id, 8.3% wa, 0.0% hi, 0.0% si Cpu1 : 0.0% us, 0.3% sy, 0.0% ni, 93.7% id, 6.0% wa, 0.0% hi, 0.0% si Cpu2 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si Cpu3 : 0.3% us, 0.3% sy, 0.0% ni, 97.0% id, 2.3% wa, 0.0% hi, 0.0% si Mem: 3631768k total, 935544k used, 2696224k free, 46516k buffers ^^^^^^^ MySQL is loaded and works with full load > t > pwn_mail_ru irta: >> Hi! >> >> uname -a >> Linux mysql1 2.6.16TD322 #8 SMP Thu Jul 27 18:39:45 MSD 2006 i686 unknown >> unknown GNU/Linux >> >> mysqld -V >> mysqld Ver 4.1.22-standard-log for pc-linux-gnu on i686 (MySQL Community >> Edition - Standard (GPL)) >> >> >> Выполнялся такой запрос из под PHP (в нем была допущена ошибка) >> >> $Query = "SELECT SQL_SMALL_RESULT DEV.ID,I1.A as A1,I1.B as B1,I1.C as >> C1,I1.D as D1,I2.A as A2,I2.B as B2,I2.C as C2,I2.D as D2,DEV.ID_ROLE,". >> "I3.A as A3,I3.B as B3,I3.C as C3,I3.D as D3,I4.A as A4,I4.B as >> B4,I4.C as C4,I4.D as D4, DEV.SNMPCOMM_C, DEV.SNMPCOMM_M,DEV.LGSNMP,". >> >> "DEV.LGSNMP2,DEV.SNMPPORT1,DEV.SNMPPORT2,DEV.LGSSH,MD.NAME_MODEL,DEV.LGDEAD,DEV.LGAUTOCH,DEV.TACACS_KEY_C,DEV.TYPEDEV >> FROM $TBDEV". >> " AS DEV FORCE INDEX (ID_IOF)". >> " LEFT JOIN $TBDEVIP AS I1 ON I1.ID=DEV.ID_IPADDR". >> " LEFT JOIN $TBDEVIP AS I2 ON I2.ID=DEV.ID_REALIP". >> " LEFT JOIN $TBDEVIP AS I3 ON I1.ID=DEV.ID_IPADDR". >> " LEFT JOIN $TBDEVIP AS I4 ON I2.ID=DEV.ID_REALIP". >> " LEFT JOIN $TBDEVMOD AS MD ON MD.ID=DEV.ID_MODEL". >> " WHERE DEV.ID_IOF=$SubDiv order by >> DEV.LGDEAD,DEV.TYPEDEV,I1.A,I1.B,I1.C,I1.D"; >> >> >> Корректный запрос после того как ошибка была исправлена >> >> $Query = "SELECT SQL_SMALL_RESULT DEV.ID,I1.A as A1,I1.B as B1,I1.C as >> C1,I1.D as D1,I2.A as A2,I2.B as B2,I2.C as C2,I2.D as D2,DEV.ID_ROLE,". >> "I3.A as A3,I3.B as B3,I3.C as C3,I3.D as D3,I4.A as A4,I4.B as >> B4,I4.C as C4,I4.D as D4, DEV.SNMPCOMM_C, DEV.SNMPCOMM_M,DEV.LGSNMP,". >> >> "DEV.LGSNMP2,DEV.SNMPPORT1,DEV.SNMPPORT2,DEV.LGSSH,MD.NAME_MODEL,DEV.LGDEAD,DEV.LGAUTOCH,DEV.TACACS_KEY_C,DEV.TYPEDEV >> FROM $TBDEV". >> " AS DEV FORCE INDEX (ID_IOF)". >> " LEFT JOIN $TBDEVIP AS I1 ON I1.ID=DEV.ID_IPADDR". >> " LEFT JOIN $TBDEVIP AS I2 ON I2.ID=DEV.ID_REALIP". >> " LEFT JOIN $TBDEVIP AS I3 ON I3.ID=DEV.ID_IPTUN1". >> " LEFT JOIN $TBDEVIP AS I4 ON I4.ID=DEV.ID_IPTUN2". >> " LEFT JOIN $TBDEVMOD AS MD ON MD.ID=DEV.ID_MODEL". >> " WHERE DEV.ID_IOF=$SubDiv order by >> DEV.LGDEAD,DEV.TYPEDEV,I1.A,I1.B,I1.C,I1.D"; >> >> >> Если сравнить эти два запроса, то легко можно увидеть, что это обычная >> ошибка блочного копирования. MySQL должен был бы по идее выдать сообщение о >> некорректном связывании таблиц, но вместо этого он выдал это: >> >> MySQLi Error: (1030) Получена ошибка 28 от обработчика таблиц >> >> тоесть системная ошибка нет места на диске. Разбор полетов показал, что при >> выполнении такого запроса MySQL съедает всю отведенную ему настройками >> память (смотрелось утилитой top), и очень сильно нагружает процессор. >> >> Пояснение к запросу - связывалось три таблицы, в одной устройства, в >> другой модели устройств, в третьей IP адреса. Поскольку к устройству >> может быть привязано от одного до 4 IP адресов, таблица IP адресов >> связывалась 4 раза под разными псевдонимами (и в этой части была >> допущена ошибка) >> >> структура таблиц: >> >> $TBDEV >> >> CREATE TABLE `all_dev` ( >> `ID` int(10) unsigned NOT NULL auto_increment >> `ID_IPADDR` int(11) unsigned NOT NULL default '0', >> `ID_REALIP` int(11) unsigned NOT NULL default '0', >> `ID_IPTUN1` int(11) unsigned NOT NULL default '0', >> `ID_IPTUN2` int(11) unsigned NOT NULL default '0', >> ............ >> >> PRIMARY KEY (`ID`), >> ........... >> ) ENGINE=MyISAM AUTO_INCREMENT=2374; >> >> >> $TBDEVIP >> >> CREATE TABLE `dev_ipaddr` ( >> `ID` int(10) unsigned NOT NULL auto_increment, >> `A` tinyint(3) unsigned NOT NULL default '0', >> `B` tinyint(3) unsigned NOT NULL default '0', >> `C` tinyint(3) unsigned NOT NULL default '0', >> `D` tinyint(3) unsigned NOT NULL default '0', >> .... >> PRIMARY KEY (`ID`), >> KEY `IP` (`A`,`B`,`C`,`D`) >> ) ENGINE=MyISAM AUTO_INCREMENT=4660; >> >> >> >> $TBDEVMOD >> >> CREATE TABLE `dev_model` ( >> `ID` int(10) unsigned NOT NULL auto_increment, >> `NAME_MODEL` varchar(40) NOT NULL default '', >> ..... >> PRIMARY KEY (`ID`), >> ..... >> ) ENGINE=MyISAM AUTO_INCREMENT=22; >> >> >> -- С уважением, pwn_mail_ru mailto:[EMAIL PROTECTED] -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]