[devel] robots VS sisyphus
thecrux на gmail.com
thecrux на gmail.com
Вс Дек 25 14:55:28 MSK 2011
On Sun, Dec 25, 2011 at 08:47:36AM +0400, Alexey Tourbin wrote:
> On Sat, Dec 24, 2011 at 01:15:15AM +0400, Денис Смирнов wrote:
> > В итоге единственное чем _мешает_ массовый импорт из федоры
> > пользователям/мантейнерам -- то что наш apt плохо масштабируется. И чем
> > больше пакетов, тем он тормознее.
>
> Apt масштабируется как O(n), где n - количество пакетов.
> Кроме того, константа масштабирования очень хорошая: на сервере с 24G RAM
> все операции апта выполняются менее чем за секунду. То есть нет такого,
> что сожрали CPU user time и никакого ответа не дали - дескать подождите ещё.
Объём памяти большого значения не имеет, а вот потребление CPU user time
бывает очень серьёзным. Практически на все операции apt потребляет 99%CPU
$ /usr/bin/time apt-cache search abc > /dev/null
4.54user 1.02system 0:05.57elapsed 99%CPU (0avgtext+0avgdata 291152maxresident)k
0inputs+0outputs (0major+7556minor)pagefaults 0swaps
Можно даже спалить процессор запустив:
$ apt-cache search $(perl -e 'print "a "x1025') > /dev/null
Можно собрать apt с флагом CXXFLAGS=-pg и увидеть, что любимая операция
apt это сортировка. Кстати, хороший алгоритм сортировки даёт O(n log n)
в худших случаях, поэтому мне кажется малореалистичной оценка
масштабируемости apt, как O(n).
--
Vladimir Lettiev aka crux ✉ theCrux на gmail.com
Подробная информация о списке рассылки Devel