Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Help: производительность InnoDB (Dinky) 27/10/2004 - 06:13:02
      Re: Help: производительность InnoDB (walrus) 27/10/2004 - 13:45:31
      Re: Help: производительность InnoDB (Dinky) 27/10/2004 - 16:22:28
      Re: Help: производительность InnoDB (walrus) 27/10/2004 - 18:45:00
      Re: Help: производительность InnoDB (Dinky) 27/10/2004 - 19:33:58
      Re: Во-блин, во-блин, во-блин,... (Dinky) 27/10/2004 - 20:16:37
      Re: А я не понял ... (Marat_L) 28/10/2004 - 08:23:22
      Re: А я не понял ... (Dinky) 28/10/2004 - 20:59:26

> Original message text:
> From: Dinky - 27/10/2004 - 06:13:02
> Subject:Help: производительность InnoDB
> -----------------
> загибаются у наших сессии, решил им помочь, перенести на innodb, потестировал - что-то не круто, имхо, или я что-то не понимаю :) ok, по-порядку:
> ----- таблица ------------------
> CREATE TABLE `session` (
> `session_id` varchar(32) NOT NULL default '',
> `expires` int(11) default NULL,
> `data` mediumtext,
> PRIMARY KEY (`session_id`),
> KEY `expires` (`expires`)
> ) TYPE=InnoDB
> --------------------------------
> сгенерил 10K записей, размер данных ~200MB
> ------ /etc/my.cnf -------------
> innodb_flush_log_at_trx_commit=0
> #innodb_lock_wait_timeout=50
> innodb_buffer_pool_size=500M
> innodb_additional_mem_pool_size=20M
> innodb_log_file_size=125M
> innodb_log_buffer_size=8M
> innodb_data_file_path = ibdata1:250M:autoextend
> --------------------------------
> сделал простой скриптик
> ---------
> $rs = fopen("/dev/random","r") or die("Can't open /dev/random :(\n");
> echo time()." updating sessions...\n"; flush();
> for($i=0;$i<100;$i++) {
> if($i%10 == 0) echo " ".$i." ".time()."\n"; flush();
> $r_id = rand(1,10000);
> $res = mysql_db_query("session_innodb","SELECT data FROM session WHERE session_id=".$r_id);
> mysql_free_result($res);
> $query = "UPDATE session SET data='".mysql_escape_string(fread($rs,8096*rand(1,4))).
> "' WHERE session_id=".$r_id;
> mysql_db_query("session_innodb",$query) or die(mysql_error());
> }
> echo time()." done\n";
> fclose($rs);
> ---------
> запустил, скорость - 2-3 секунды на 10 операций select/update
> запустил 8 одновременно, скорость - 25 секунд на 10 операций select/update, т.е. апдейты выполняются по 2 секунды, а некоторые и по 3, что мягко говоря не удовлетворяет требованию "<=1sec"
> Вопросы:
> - что может тормозить (где смотреть) ?
> - что можно подкрутить (аналогично) ?
>
> Спасибо
> --
> Dmitry
>
>


From: Dinky - 27/10/2004 - 19:33:58
Subject:Help: производительность InnoDB
-----------------
well, идея заполнять `data` данными переменной длины, я использовал "8096*rand(1,4)))" т.е. генерил строки по 8K-32K

ээ, а кто специалист по innodb monitor-y? может тут чего кривое видно? меня например смущает 2 секунды какого-то лока: "LOCK WAIT 2 lock struct(s)" на запросе UPDATE

=====================================
041027 10:54:23 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 16 seconds
----------
SEMAPHORES
----------
OS WAIT ARRAY INFO: reservation count 174672, signal count 115126
--Thread 8607232 has waited at ../../innobase/include/buf0buf.ic line 621 for 0.00 seconds the semaphore:
Mutex at 4306460 created file buf0buf.c line 478, lock var 0
Last time reserved in file buf0buf.c line 874, waiters flag 0
wait is ending
Mutex spin waits 8146209, rounds 26394330, OS waits 15653
RW-shared spins 162113, OS waits 66148; RW-excl spins 986, OS waits 437
------------
TRANSACTIONS
------------
Trx id counter 0 24558
Purge done for trx's n:o < 0 24494 undo n:o < 0 0
Total number of lock structs in row lock hash table 138
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 0 0, not started, OS thread id 8748032
MySQL thread id 11, query id 4119 192.168.0.168 dmitry
SHOW INNODB STATUS
---TRANSACTION 0 24557, ACTIVE 0 sec, OS thread id 8708096 starting index read
mysql tables in use 1, locked 1
LOCK WAIT 2 lock struct(s), heap size 320
MySQL thread id 14, query id 4117 localhost php Updating
UPDATE session SET data='
------- TRX HAS BEEN WAITING 0 SEC FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 0 page no 262 n bits 88 table session_innodb/session index PRIMARY trx id 0 24557 lock_mode X waiting
Record lock, heap no 2 RECORD: info bits 0 0: len 1; hex 31; asc 1;; 1: len 6; hex 000000005fb5; asc ...._.;; 2:
------------------
---TRANSACTION 0 24556, ACTIVE 0 sec, OS thread id 8620032 fetching rows, thread declared inside InnoDB 341
mysql tables in use 1, locked 0
MySQL thread id 13, query id 4115 localhost php Sending data
SELECT data FROM session WHERE session_id=3181
Trx read view will not see trx with id >= 0 24557, sees < 0 24537
---TRANSACTION 0 24554, ACTIVE 1 sec, OS thread id 8687104 starting index read
mysql tables in use 1, locked 1
LOCK WAIT 2 lock struct(s), heap size 320
MySQL thread id 18, query id 4112 localhost php Updating
UPDATE session SET data='
------- TRX HAS BEEN WAITING 1 SEC FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 0 page no 262 n bits 88 table session_innodb/session index PRIMARY trx id 0 24554 lock_mode X waiting
Record lock, heap no 2 RECORD: info bits 0 0: len 1; hex 31; asc 1;; 1: len 6; hex 000000005fb5; asc ...._.;; 2:
------------------
---TRANSACTION 0 24550, ACTIVE 1 sec, OS thread id 8579584 starting index read
mysql tables in use 1, locked 1
LOCK WAIT 2 lock struct(s), heap size 320
MySQL thread id 15, query id 4106 localhost php Updating
UPDATE session SET data='
------- TRX HAS BEEN WAITING 1 SEC FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 0 page no 262 n bits 88 table session_innodb/session index PRIMARY trx id 0 24550 lock_mode X waiting
Record lock, heap no 2 RECORD: info bits 0 0: len 1; hex 31; asc 1;; 1: len 6; hex 000000005fb5; asc ...._.;; 2:
------------------
---TRANSACTION 0 24547, ACTIVE 1 sec, OS thread id 8728064 starting index read
mysql tables in use 1, locked 1
LOCK WAIT 2 lock struct(s), heap size 320
MySQL thread id 12, query id 4102 localhost php Updating
UPDATE session SET data='
------- TRX HAS BEEN WAITING 1 SEC FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 0 page no 262 n bits 88 table session_innodb/session index PRIMARY trx id 0 24547 lock_mode X waiting
Record lock, heap no 2 RECORD: info bits 0 0: len 1; hex 31; asc 1;; 1: len 6; hex 000000005fb5; asc ...._.;; 2:
------------------
---TRANSACTION 0 24545, ACTIVE 2 sec, OS thread id 8630784 starting index read
mysql tables in use 1, locked 1
LOCK WAIT 2 lock struct(s), heap size 320
MySQL thread id 17, query id 4100 localhost php Updating
UPDATE session SET data='
------- TRX HAS BEEN WAITING 2 SEC FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 0 page no 262 n bits 88 table session_innodb/session index PRIMARY trx id 0 24545 lock_mode X waiting
Record lock, heap no 2 RECORD: info bits 0 0: len 1; hex 31; asc 1;; 1: len 6; hex 000000005fb5; asc ...._.;; 2:
------------------
---TRANSACTION 0 24542, ACTIVE 2 sec, OS thread id 8667136 starting index read
mysql tables in use 1, locked 1
LOCK WAIT 2 lock struct(s), heap size 320
MySQL thread id 16, query id 4096 localhost php Updating
UPDATE session SET data='
------- TRX HAS BEEN WAITING 2 SEC FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 0 page no 262 n bits 88 table session_innodb/session index PRIMARY trx id 0 24542 lock_mode X waiting
Record lock, heap no 2 RECORD: info bits 0 0: len 1; hex 31; asc 1;; 1: len 6; hex 000000005fb5; asc ...._.;; 2:
------------------
---TRANSACTION 0 24537, ACTIVE 2 sec, OS thread id 8607232 fetching rows, thread declared inside InnoDB 458
mysql tables in use 1, locked 1
133 lock struct(s), heap size 11584
MySQL thread id 19, query id 4090 localhost php Updating
UPDATE session SET data='
--------
FILE I/O
--------
I/O thread 0 state: waiting for i/o request (insert buffer thread)
I/O thread 1 state: waiting for i/o request (log thread)
I/O thread 2 state: waiting for i/o request (read thread)
I/O thread 3 state: waiting for i/o request (write thread)
Pending normal aio reads: 0, aio writes: 0,
ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0
Pending flushes (fsync) log: 0; buffer pool: 0
15333 OS file reads, 4052 OS file writes, 563 OS fsyncs
0.00 reads/s, 0 avg bytes/read, 6.94 writes/s, 1.37 fsyncs/s
-------------------------------------
INSERT BUFFER AND ADAPTIVE HASH INDEX
-------------------------------------
Ibuf for space 0: size 1, free list len 0, seg size 2,
0 inserts, 0 merged recs, 0 merges
Hash table size 4425293, used cells 8737, node heap has 10 buffer(s)
0.44 hash searches/s, 13.81 non-hash searches/s
---
LOG
---
Log sequence number 0 335082917
Log flushed up to 0 335055501
Last checkpoint at 0 333134601
0 pending log writes, 0 pending chkp writes
424 log i/o's done, 1.12 log i/o's/second
----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 1194238752; in additional pool allocated 1849216
Buffer pool size 65536
Free buffers 49172
Database pages 16354
Modified db pages 384
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
Pages read 15560, created 794, written 4315
0.00 reads/s, 0.94 creates/s, 6.94 writes/s
Buffer pool hit rate 1000 / 1000
--------------
ROW OPERATIONS
--------------
2 queries inside InnoDB, 0 queries in queue
Main thread id 8527872, state: sleeping
Number of rows inserted 0, updated 1013, deleted 0, read 20334055
0.00 inserts/s, 3.06 updates/s, 0.00 deletes/s, 61389.16 reads/s
----------------------------
END OF INNODB MONITOR OUTPUT
============================

thanx
--
Dmitry


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
18112



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |