<?xml version='1.0' encoding='utf-8' ?>
<!--  If you are running a bot please visit this policy page outlining rules you must respect. http://lj.rossia.org/bots/  -->
<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/'>
<channel>
  <title>LJ.Rossia.org fork development.</title>
  <link>http://lj.rossia.org/community/ljr_dev/</link>
  <description>LJ.Rossia.org fork development. - LJ.Rossia.org</description>
  <lastBuildDate>Fri, 14 Mar 2008 09:42:14 GMT</lastBuildDate>
  <generator>LiveJournal / LJ.Rossia.org</generator>
<item>
  <guid isPermaLink='true'>http://lj.rossia.org/community/ljr_dev/4658.html</guid>
  <pubDate>Fri, 14 Mar 2008 09:42:14 GMT</pubDate>
  <title>Apache compression</title>
  <link>http://lj.rossia.org/community/ljr_dev/4658.html</link>
  <description>Я тут заметил, что при обращениях к LJR (и веротяно ко всему ленину) не используется сжатие. Mozilla морально готова пользоваться  gzip compression и соответствующие запросы в Accept-Endodings прописывает. Насколько я понимаю - это надо где-то в настройках апача прописать, но я не очень компетентен в данном вопросе.&lt;br /&gt;&lt;br /&gt;PS: &lt;a href=&quot;http://www.websiteoptimization.com/speed/tweak/compress/&quot;&gt;http://www.websiteoptimization.com/spee&lt;wbr /&gt;d/tweak/compress/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:left&quot;&gt;&lt;font size=&quot;-2&quot;&gt;&lt;a href=&quot;http://lj.rossia.org/community/ljr_dev/4658.html&quot;&gt;&lt;img src=http://lj.rossia.org/comments/18/43 border=0 width=26 height=17  alt=&quot;number of comments&quot; style=&quot;border:0px;&quot; /&gt; &lt;strong&gt;Comments&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;</description>
  <comments>http://lj.rossia.org/community/ljr_dev/4658.html</comments>
</item>
<item>
  <guid isPermaLink='true'>http://lj.rossia.org/community/ljr_dev/3294.html</guid>
  <pubDate>Mon, 13 Nov 2006 09:55:59 GMT</pubDate>
  <link>http://lj.rossia.org/community/ljr_dev/3294.html</link>
  <description>А есть такой вопрос - такая фича LJ, как customview у нас есть?&lt;br /&gt;(&lt;a href=&quot;http://community.livejournal.com/howto/16676.html&quot;&gt;http://community.livejournal.com/ho&lt;wbr /&gt;wto/16676.html&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Или это какое-то нововведение LJ?&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:left&quot;&gt;&lt;font size=&quot;-2&quot;&gt;&lt;a href=&quot;http://lj.rossia.org/community/ljr_dev/3294.html&quot;&gt;&lt;img src=http://lj.rossia.org/comments/12/43 border=0 width=26 height=17  alt=&quot;number of comments&quot; style=&quot;border:0px;&quot; /&gt; &lt;strong&gt;Comments&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;</description>
  <comments>http://lj.rossia.org/community/ljr_dev/3294.html</comments>
</item>
<item>
  <guid isPermaLink='true'>http://lj.rossia.org/community/ljr_dev/3015.html</guid>
  <pubDate>Fri, 29 Jul 2005 19:18:04 GMT</pubDate>
  <link>http://lj.rossia.org/community/ljr_dev/3015.html</link>
  <description>Я в каком-то виде довел до ума свой &lt;a href=&quot;http://oops.tepkom.ru/~msk/LJ/LJ-Gate-05-Jul-29-at-23-21.tar.bz2&quot;&gt;вариант&lt;/a&gt; lj-gate. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Там причесан код (как мне кажется - довольно аккуратно) и избавлено от затеи с -10 минут (и фиксированного сдвига по времени). Ставить это сейчас не стоит, собака еще молодая, но я был бы признателен, если бы компетентные товарищи посмотрели на это дело и решили, что с этим делать дальше и стоит ли чего-то делать. &lt;br /&gt;&lt;br /&gt;Известные проблемы: в режиме только гейтования все должно быть хорошо, но если пользователь запостит в LJ-шный дневник постиннг руками - вероятно будут проблемы с backdate. Так же syncitems идейно правилен (с ним логика куда прозрачнее), но видимо нежелателен по соображеням эффективности. Ну и возможны глюки.&lt;br /&gt;&lt;br /&gt;Я бы не стал это сейчас посылать, но я завтра на несколько дней опять отваливаю и мне хотелось бы хотя бы минимального feedback&apos;a. &lt;br /&gt;&lt;br /&gt;Upd:Кстати - тормозит гейт, скорее всего, потому что он каждые 10 минут должен опросить все трансляции, а сделать это кроме как тупо спросив про каждую, никак невозможно. Я думаю, что это и жрет основное время - постит любой человек гораздо реже. То есть у человека максимум 5 постингов в день - а запросов на него выдается за день почти 6*24=144.&lt;br /&gt;&lt;br /&gt;Так что syncitems вероятно можно и не выкидывать. А вот если дополнить функциональность syncitems возможностью спросить сразу про пачку пользователей я думаю, проблема вполне решится (его еще бы не помешало и нотификацией о удалениях дополнить - о новых комментах он вроде сообщает, хотя дока и утверждает, что это не реализовано).&lt;br /&gt;&lt;br /&gt;&lt;lj-cut text=&quot;README из архива&quot;&gt;&lt;br /&gt;README:&lt;br /&gt;----------------------&lt;br /&gt;lj-gate.pl - собственно главная программа&lt;br /&gt;Util.pm    - набор пользушных функций для работы с клиентским&lt;br /&gt;             протоколом LJ&lt;br /&gt;LJDB.pm    - набор функций для доступа к БД гейта&lt;br /&gt;add.pl     - переписан с использованием LJDB.pm&lt;br /&gt;&lt;br /&gt;Изменения в формате БД:&lt;br /&gt;&lt;br /&gt;добавлена колонка last_sync char (30) в таблицу rlj2lj.&lt;br /&gt;Если в этом поле содержится NULL, в качестве времени&lt;br /&gt;последний синхронизации берется текущий момент.&lt;br /&gt;&lt;br /&gt;Соотвественно - должно быть достаточно ее создать &lt;br /&gt;в таблице. &lt;br /&gt;&lt;br /&gt;Другие изменения:пересажено на syncitems. Идеологически&lt;br /&gt;это правильно, практически - вероятно добавит тормозов&lt;br /&gt;(ибо каждая запись при этом берется отдельным запросом).&lt;br /&gt;&lt;br /&gt;По-видимому, это надо херить, но сначала вероятно&lt;br /&gt;есть смысл попробовать перелезть на плоский протокол.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:left&quot;&gt;&lt;font size=&quot;-2&quot;&gt;&lt;a href=&quot;http://lj.rossia.org/community/ljr_dev/3015.html&quot;&gt;&lt;img src=http://lj.rossia.org/comments/11/43 border=0 width=26 height=17  alt=&quot;number of comments&quot; style=&quot;border:0px;&quot; /&gt; &lt;strong&gt;Comments&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;</description>
  <comments>http://lj.rossia.org/community/ljr_dev/3015.html</comments>
</item>
<item>
  <guid isPermaLink='true'>http://lj.rossia.org/community/ljr_dev/2803.html</guid>
  <pubDate>Fri, 29 Jul 2005 18:13:47 GMT</pubDate>
  <link>http://lj.rossia.org/community/ljr_dev/2803.html</link>
  <description>Итак, &lt;br /&gt;поставили наконец server-status, &lt;br /&gt;и все стало гораздо яснее.&lt;br /&gt;Вот типичный слепок со статуса&lt;br /&gt;(типичный за последние сутки - я его&lt;br /&gt;перегружаю постоянно)&lt;br /&gt;&lt;br /&gt;&lt;lj-cut&gt; &lt;pre&gt;&lt;small&gt;Current Time: Friday, 29-Jul-2005 21:56:57 MSD
Restart Time: Friday, 29-Jul-2005 10:15:41 MSD
Parent Server Generation: 0
Server uptime: 11 hours 41 minutes 16 seconds
Total accesses: 115579 - Total Traffic: 478.7 MB
CPU Usage: u124.77 s5.48 cu.12 cs.05 - .31% CPU load
2.75 requests/sec - 11.7 kB/second - 4343 B/request
1 requests currently being processed, 11 idle servers

Srv	PID	Acc	M	CPU 	SS	Req	Conn	Child	Slot	Client	VHost	
0-0	15602	0/188/7683	_ 	3.08	47	50	0.0	0.61	33.40 	81.19.69.109	lj.rossia.org	POST /interface/xmlrpc HTTP/1.1
 
1-0	15672	0/74/7570	_ 	1.47	11	72	0.0	0.41	30.07 	81.19.69.109	lj.rossia.org	POST /interface/xmlrpc HTTP/1.1
 
2-0	15674	0/79/7573	_ 	1.50	149	13	0.0	0.29	29.41 	81.19.69.109	lj.rossia.org	POST /interface/xmlrpc HTTP/1.1
 
3-0	15677	0/84/7577	_ 	1.86	29	48	0.0	0.39	31.02 	81.19.69.109	lj.rossia.org	POST /interface/xmlrpc HTTP/1.1
 
4-0	15683	0/66/7558	W 	1.33	5	0	0.0	0.39	31.38 	129.234.4.1	lj.rossia.org	GET /server-status HTTP/1.0
 
5-0	15712	0/42/7535	_ 	0.96	23	2	0.0	0.27	29.11 	81.26.152.28	lj.rossia.org	POST /interface/flat HTTP/1.0
 
6-0	15733	0/32/7524	_ 	0.67	20	22	0.0	0.22	31.15 	81.26.152.28	lj.rossia.org	POST /interface/flat HTTP/1.0
 
7-0	15735	0/30/7025	_ 	0.30	23	13	0.0	0.10	29.29 	81.19.69.109	lj.rossia.org	POST /interface/xmlrpc HTTP/1.1
 
8-0	15738	0/25/7021	_ 	0.47	36	13	0.0	0.17	31.46 	81.19.69.109	lj.rossia.org	POST /interface/xmlrpc HTTP/1.1
 
9-0	15740	0/23/7015	_ 	0.48	31	52	0.0	0.14	29.33 	81.19.69.109	lj.rossia.org	POST /interface/xmlrpc HTTP/1.1
 
10-0	-	0/0/6494	. 	9.81	489	14	0.0	0.00	26.46 	213.180.214.132	lj.rossia.org	GET /users/evolor/data/rss HTTP/1.1
 
11-0	-	0/0/6497	. 	10.39	327	1	0.0	0.00	25.02 	64.2.106.163	lj.rossia.org	GET /img/bluewhite/sidebarfade.gif HTTP/1.1
 
12-0	-	0/0/5996	. 	8.77	446	9	0.0	0.00	24.66 	213.180.214.132	lj.rossia.org	GET /users/tichy/data/rss HTTP/1.1
 
13-0	15623	0/149/5145	_ 	2.24	31	13	0.0	0.32	20.45 	81.19.69.109	lj.rossia.org	POST /interface/xmlrpc HTTP/1.1
 
14-0	-	0/0/4992	. 	11.11	2266	1	0.0	0.00	20.13 	82.96.193.32	lj.rossia.org	GET /img/talk/none.gif HTTP/1.1
 
15-0	-	0/0/3997	. 	14.94	8907	6	0.0	0.00	18.21 	80.247.47.58	lj.rossia.org	GET /userpic/483/957 HTTP/1.1
 
16-0	-	0/0/2997	. 	8.02	8997	5	0.0	0.00	13.34 	217.15.150.143	lj.rossia.org	GET /userpic/1040/1757 HTTP/1.1
 
17-0	-	0/0/1997	. 	12.12	6548	1	0.0	0.00	8.35 	81.197.76.33	lj.rossia.org	GET /img/bluewhite/vline.gif HTTP/1.1
 
18-0	-	0/0/1499	. 	15.86	23305	50	0.0	0.00	7.36 	81.19.69.109	lj.rossia.org	POST /interface/xmlrpc HTTP/1.1
 
19-0	-	0/0/999	. 	11.18	23306	1	0.0	0.00	4.01 	213.180.193.193	lj.rossia.org	GET /js/x_core.js HTTP/1.1
 
Srv	Child Server number - generation
PID	OS process ID
Acc	Number of accesses this connection / this child / this slot
M	Mode of operation
CPU	CPU usage, number of seconds
SS	Seconds since beginning of most recent request
Req	Milliseconds required to process most recent request
Conn	Kilobytes transferred this connection
Child	Megabytes transferred this child
Slot	Total megabytes transferred this slot
&lt;/small&gt;
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;И что видно из сего?&lt;br /&gt;&lt;br /&gt;А видно то, что 95% из всех процессов Апача &lt;br /&gt;(из которых каждый, я хочу отметить, жрет по &lt;br /&gt;50 мегабайт) заняты совершенно не тем.&lt;br /&gt;А именно:&lt;br /&gt;&lt;br /&gt;1. Примерно половина грузят статику&lt;br /&gt;&lt;br /&gt;2. 40% занимаются тем, что считывают&lt;br /&gt;записи LJ через клиентский интерфэйс.&lt;br /&gt;Эти 40% жрут вчетверо больше ресурсов,&lt;br /&gt;чем все остальное вместе взятое.&lt;br /&gt;&lt;br /&gt;3. Из оставшихся 10% половина грузят &lt;br /&gt;жабий скрип.&lt;br /&gt;&lt;br /&gt;Приоритетные направления оптимизации из этого&lt;br /&gt;совершенно ясны: это&lt;br /&gt;&lt;br /&gt;1. Перевод статики на другой сервер (на днях&lt;br /&gt;я сие обеспечу, если никто не возражает)&lt;br /&gt;&lt;br /&gt;2. Избавление lj-gate от /interface/xmlrpc&lt;br /&gt;который, судя по всему, совершенно сломан. &lt;br /&gt;Надо исправить его на /interface/plain&lt;br /&gt;либо (если это не улучшит ситуации) &lt;br /&gt;вообще заменить на прямое обращение&lt;br /&gt;к базе.&lt;br /&gt;&lt;br /&gt;На сей момент гэйт жрет больше половины ресурсов&lt;br /&gt;системы, при том, что им пользуются считанные десятки -&lt;br /&gt;это категорически неправильно.&lt;br /&gt;&lt;br /&gt;А в целом - мы имеем (при 1863 пользователях)&lt;br /&gt;load average 0.30. Это при том, что при 1-1.5&lt;br /&gt;она работает идеально, а при 4-5 работает&lt;br /&gt;без особых проблем (хотя и тормозит). &lt;br /&gt;То есть 20000 дневников, видимо, можно &lt;br /&gt;у нас и без всякой оптимизации запустить; &lt;br /&gt;просто не хочется ждать, когда начнутся&lt;br /&gt;проблемы.&lt;br /&gt;&lt;br /&gt;Такие дела&lt;br /&gt;Миша&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:left&quot;&gt;&lt;font size=&quot;-2&quot;&gt;&lt;a href=&quot;http://lj.rossia.org/community/ljr_dev/2803.html&quot;&gt;&lt;img src=http://lj.rossia.org/comments/10/43 border=0 width=26 height=17  alt=&quot;number of comments&quot; style=&quot;border:0px;&quot; /&gt; &lt;strong&gt;Comments&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;</description>
  <lj:music>Fly Pan Am - Dans Ses Cheveux Soixante Circuits</lj:music>
  <lj:mood>blank</lj:mood>
</item>
<item>
  <guid isPermaLink='true'>http://lj.rossia.org/community/ljr_dev/2532.html</guid>
  <pubDate>Sun, 24 Jul 2005 11:54:42 GMT</pubDate>
  <link>http://lj.rossia.org/community/ljr_dev/2532.html</link>
  <description>Я сейчас с подачи &lt;span class=&apos;ljruser&apos; style=&apos;white-space: nowrap;&apos;&gt;&lt;a href=&apos;http://www.livejournal.com/userinfo.bml?user=yushi&apos;&gt;&lt;img src=&apos;http://lj.rossia.org/img/userinfo-lj.gif&apos; alt=&apos;[info]&apos; style=&apos;vertical-align: bottom; border: 0;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;http://www.livejournal.com/users/yushi/&apos;&gt;&lt;b&gt;yushi@lj&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; переписываю lj-gate. Что делаю - &lt;br /&gt;помимо &quot;причесывания&quot; кода, пересаживаю его на syncitems, там &lt;br /&gt;все можно сделать куда корректнее, чем сейчас, в частности -&lt;br /&gt;update и delete там явно отличатся от create. И, безусловно, надо выкидывать&lt;br /&gt;этот страх с -10 минут, а просто запоминать в базе&lt;br /&gt;время последней синхронизации, отданное syncitems (он отдает именно&lt;br /&gt;реальное время события, а не дату для постинга) и от него &lt;br /&gt;и плясать в следующий раз.&lt;br /&gt;&lt;br /&gt;Единственный вопрос - что делать с новыми пользователями - можно либо&lt;br /&gt;стартовать от текущей даты, либо копировать дневник с самого начала.&lt;br /&gt;Второе, наверное, не очень хорошо, хотя можно сделать параметром.&lt;br /&gt;&lt;br /&gt;Сейчас я вынужден уехать на несколько дней - так что, если не горит, &lt;br /&gt;- не трогайте его сильно.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:left&quot;&gt;&lt;font size=&quot;-2&quot;&gt;&lt;a href=&quot;http://lj.rossia.org/community/ljr_dev/2532.html&quot;&gt;&lt;img src=http://lj.rossia.org/comments/9/43 border=0 width=26 height=17  alt=&quot;number of comments&quot; style=&quot;border:0px;&quot; /&gt; &lt;strong&gt;Comments&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;</description>
  <comments>http://lj.rossia.org/community/ljr_dev/2532.html</comments>
</item>
<item>
  <guid isPermaLink='true'>http://lj.rossia.org/community/ljr_dev/2215.html</guid>
  <pubDate>Wed, 20 Jul 2005 19:13:06 GMT</pubDate>
  <link>http://lj.rossia.org/community/ljr_dev/2215.html</link>
  <description>Кстати, может быть, отрубить возможность включать &lt;span class=&apos;ljruser&apos; style=&apos;white-space: nowrap;&apos;&gt;&lt;a href=&apos;http://www.livejournal.com/userinfo.bml?user=lj_fif&apos;&gt;&lt;img src=&apos;http://lj.rossia.org/img/userinfo-lj.gif&apos; alt=&apos;[info]&apos; style=&apos;vertical-align: bottom; border: 0;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;http://www.livejournal.com/users/lj_fif/&apos;&gt;&lt;b&gt;lj_fif@lj&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; во френды? Смысла то в этом нет...&lt;br /&gt;Хотя вреда пока тоже.&lt;br /&gt;&lt;b&gt;UPD:&lt;/b&gt; а вред понял: от него действительно FOAF сильно перекашивает.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:left&quot;&gt;&lt;font size=&quot;-2&quot;&gt;&lt;a href=&quot;http://lj.rossia.org/community/ljr_dev/2215.html&quot;&gt;&lt;img src=http://lj.rossia.org/comments/8/43 border=0 width=26 height=17  alt=&quot;number of comments&quot; style=&quot;border:0px;&quot; /&gt; &lt;strong&gt;Comments&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;</description>
  <comments>http://lj.rossia.org/community/ljr_dev/2215.html</comments>
</item>
<item>
  <guid isPermaLink='true'>http://lj.rossia.org/community/ljr_dev/2041.html</guid>
  <pubDate>Wed, 20 Jul 2005 19:11:04 GMT</pubDate>
  <title>OpenID на помойку...</title>
  <link>http://lj.rossia.org/community/ljr_dev/2041.html</link>
  <description>Вердикт, похоже, таков. Брэд опять сделал изменение, все стало немедленно криво. Работать с ним невозможно.&lt;br /&gt;ИМХО, это дело стоит пока отключить. Нафиг. Иначе пользователи будут вопить. &lt;br /&gt;Подождем стейбла.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:left&quot;&gt;&lt;font size=&quot;-2&quot;&gt;&lt;a href=&quot;http://lj.rossia.org/community/ljr_dev/2041.html&quot;&gt;&lt;img src=http://lj.rossia.org/comments/7/43 border=0 width=26 height=17  alt=&quot;number of comments&quot; style=&quot;border:0px;&quot; /&gt; &lt;strong&gt;Comments&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;</description>
  <comments>http://lj.rossia.org/community/ljr_dev/2041.html</comments>
</item>
<item>
  <guid isPermaLink='true'>http://lj.rossia.org/community/ljr_dev/654.html</guid>
  <pubDate>Sat, 16 Jul 2005 19:32:06 GMT</pubDate>
  <link>http://lj.rossia.org/community/ljr_dev/654.html</link>
  <description>Существует теперь специальная привилегия &apos;create_protected_com&apos;, созданная специально для того, чтобы обходить запрет на создание сообществ с запрещенными именами. &lt;br /&gt;Сделано хаком в community/create.bml и добавлением информации о привилегии в базу.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:left&quot;&gt;&lt;font size=&quot;-2&quot;&gt;&lt;a href=&quot;http://lj.rossia.org/community/ljr_dev/654.html&quot;&gt;&lt;img src=http://lj.rossia.org/comments/2/43 border=0 width=26 height=17  alt=&quot;number of comments&quot; style=&quot;border:0px;&quot; /&gt; &lt;strong&gt;Comments&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;</description>
  <comments>http://lj.rossia.org/community/ljr_dev/654.html</comments>
</item>
</channel>
</rss>
