Есть более двух милионнов документов, рост 0.5-1% в день.
1. Какой движок лучше (иннобд, майисам)?
2. Как уменьшить нагрузку на диск? Сейчас WA большой (23-30%) при добавллении записей/чтение записей.
3. Сейчас использую иннобд, как уменьшить размер ibdata
-rw-rw---- 1 mysql mysql 45G 2011-06-20 10:14 ibdata1
Что еще можно сделать для оптимизации?
1. Sphinx как-то медленно индексирует, после 50 000 тысяч начинает сильно тормозить (фактически встает)
> сollected 45475 docs, 420.8 MB
В топе MySQL
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4871 mysql 20 0 145m 59m 6132 S 112 3.0 463:45.55 mysqld
1. Какой движок лучше (иннобд, майисам)?
2. Как уменьшить нагрузку на диск? Сейчас WA большой (23-30%) при добавллении записей/чтение записей.
3. Сейчас использую иннобд, как уменьшить размер ibdata
-rw-rw---- 1 mysql mysql 45G 2011-06-20 10:14 ibdata1
Что еще можно сделать для оптимизации?
1. Sphinx как-то медленно индексирует, после 50 000 тысяч начинает сильно тормозить (фактически встает)
> сollected 45475 docs, 420.8 MB
Код:
CREATE TABLE `docs` (
`id` int(10) unsigned NOT NULL auto_increment,
`courId` int(11) default NULL,
`type` int(11) default NULL,
`step` int(11) default NULL,
`loaded` enum('0','1','2') default '0',
`sId` tinytext,
`sDescription` mediumtext,
`sArticle` mediumtext,
`sCategory` mediumtext,
`sJudge` mediumtext,
`sPublicDate` tinytext,
`sArticleFull` text,
`sJudgeFull` text,
`sResult` tinytext,
`sResultDate` tinytext,
`sHtml` longtext,
`rand` int(11) default NULL,
PRIMARY KEY (`id`),
KEY `idx_sid` (`sId`(100)),
KEY `idx_loaded` (`loaded`),
KEY `idx_rand` (`rand`),
KEY `idx_loaded_rand` (`loaded`,`rand`)
) ENGINE=InnoDB AUTO_INCREMENT=2062951 DEFAULT CHARSET=cp1251
Код:
source docs {
type = mysql
sql_host = localhost
sql_user = root
sql_pass =
sql_db = docs
sql_query_pre = SET NAMES 'cp1251'
sql_query_pre = SET CHARACTER SET 'cp1251'
sql_query_range = SELECT 1, COUNT(*) FROM `docs` WHERE `loaded` = '1'
sql_range_step = 128
sql_query = SELECT `id`, `sHtml` FROM `docs` WHERE `loaded` = '1' && '$end' LIMIT $start, 128
}
index docs {
source = docs
path = data/docs.1
docinfo = extern
morphology = stem_en, stem_ru
html_strip = 1
min_word_len = 2
}
searchd {
port = 3340
log = logs/sphinx.log
query_log = logs/query.log
read_timeout = 5
max_children = 30
pid_file = sphinx.pid
max_matches = 1000
seamless_rotate = 0
preopen_indexes = 0
unlink_old = 1
Код:
serv002:~# dstat
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
9 1 85 5 0 0| 560k 1013k| 0 0 | 22B 26B| 310 1432
24 2 49 26 0 0|3248k 544k| 11k 62k| 0 0 | 328 1760
4 0 80 16 0 0|3232k 272k| 10k 302k| 0 0 | 478 1340
6 2 67 25 0 0|2632k 2824k| 12k 33k| 0 0 | 277 1676
9 2 49 40 0 0| 18M 4216k|7945B 44k| 0 0 | 385 1947
33 2 41 25 0 0|6528k 528k|6659B 112k| 0 0 | 315 1975
33 4 40 23 0 0|3472k 432k| 11k 87k| 0 0 | 280 3191
30 3 43 24 0 0|4208k 32k| 12k 69k| 0 0 | 279 2743
25 4 43 28 0 0|3176k 1792k| 14k 162k| 0 0 | 404 3460
7 3 52 38 0 0|3304k 6784k| 35k 768k| 0 0 |1278 2006
13 3 58 25 0 0|2984k 5976k| 41k 1120k| 0 0 |1771 2289
8 1 54 36 0 0|3224k 160k| 11k 199k| 0 0 | 429 1568 ^C
serv002:~#
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4871 mysql 20 0 145m 59m 6132 S 112 3.0 463:45.55 mysqld