metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2014-04-25 12:29 pm

Странная оптимизация

https://github.com/twain47/Nominatim/blob/master/utils/setup.php#L395
$iInstances - количество работающих процессов, вычисляется как "количество процессоров-1".
Получается, что на постгрес отправляется параллельно несколько запросов, причем каждый запрос обрабатывает свое подмножество записей (условие osm_id % $iInstances = $i)

По идее, если запрос упирается в CPU (судя по нагрузке - таки да), это осмысленная оптимизация, если же в i/o, то выглядит это как-то странновато.

PS: впрочем там на вставку в placex обновляется gist индекс по положению + триггер placex_insert на пять страниц. Поэтому оно, похоже, адски CPU-bound.

Алсо, в 14.04 убунте уже 9.3 Postgresql и ему не нужно подкручивать kernel.shmmax, потому что https://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.3#Switch_to_Posix_shared_memory_and_mmap.28.29

[identity profile] skif-by.livejournal.com 2014-04-25 09:41 am (UTC)(link)
Есть мнение, что за такое использование PHP надо убивать.

[identity profile] metaclass.livejournal.com 2014-04-25 09:43 am (UTC)(link)
Почему? С виду все приемлемо.

[identity profile] skif-by.livejournal.com 2014-04-25 09:45 am (UTC)(link)
Ну и CMS можно на C++ написать, но зачем?