Jump to content

Toolserver/For users/Ru: Difference between revisions

From Meta, a Wikimedia project coordination wiki
Content deleted Content added
more
~riley (talk | contribs)
m Fixing obselete HTML tag lint errors (i.e. <tt> → <code>)
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{stub}}
{{Toolserver/Ru}}

{{Toolserver}}
Здесь приведена информация для пользователей zedler.
Здесь приведена информация для пользователей zedler.


== Ваш аккаунт ==
== Ваш аккаунт ==


У вас есть учётная запись. Вы можете зайте по ssh на сервере <tt>login-services.zedler.knams.wikimedia.org</tt> (или or <tt>tools.wikimedia.org</tt> - краткое имя). Сейчас его IP-адрес - 145.97.39.142.
У вас есть учётная запись. Вы можете зайте по ssh на сервере <code>login-services.zedler.knams.wikimedia.org</code> (или or <code>tools.wikimedia.org</code> краткое имя). Сейчас его IP-адрес 145.97.39.142.


Для всех аккаунтов задано время истечения в будущем (выводится при каждом входе). Используемые аккаунты нужно обновить в соответствии с правилами (см. [[Toolserver]]).
Для всех аккаунтов задано время истечения в будущем (выводится при каждом входе). Используемые аккаунты нужно обновить в соответствии с правилами (см. [[Toolserver]]).


Применяется аутентификация с использованием публичных ключей. Чтобы добавить новый SSH-клюс, измените <tt>~/.ssh/authorized_keys</tt> и допишите его туда на новой строке (формат OpenSSH, только ключи второй версии SSH).
Применяется аутентификация с использованием публичных ключей. Чтобы добавить новый SSH-ключ, измените <code>~/.ssh/authorized_keys</code> и допишите его туда на новой строке (формат OpenSSH, только ключи второй версии SSH).


Если у вас возникли проблемы, напишите на <tt>zedler-admins@wikimedia.org</tt>. В качестве альтернативы, можно воспользоваться списком рассылки [http://mail.wikipedia.org/mailman/listinfo/toolserver-l toolserver-l] или же спросить в IRC-канале [irc://irc.freenode.net/wikimedia-toolserver #wikimedia-toolserver].
Если у вас возникли проблемы, напишите на <code>zedler-admins@wikimedia.org</code>. В качестве альтернативы, можно воспользоваться списком рассылки [http://mail.wikipedia.org/mailman/listinfo/toolserver-l toolserver-l] или же спросить в IRC-канале [irc://irc.freenode.net/wikimedia-toolserver #wikimedia-toolserver].


== База данных ==
== База данных ==


У вас есть база с названием "<tt>u_<имяпользователя></tt>". Пароль к ней записан в вашем файле <tt>~/.my.cnf</tt>. К ней имеете доступ на запись только вы, но таблицы, названия которых начинаются с "<tt>pub_</tt>", может прочитать любой другой пользователь. Имя SQL-сервера - ''sql'' (но не ''localhost'')
У вас есть база с названием «<code>u_<имяпользователя></code>». Пароль к ней записан в вашем файле <code>~/.my.cnf</code>. К ней имеете доступ на запись только вы, но таблицы, названия которых начинаются с «<code>pub_</code>», может прочитать любой другой пользователь. Имя SQL-сервера ''sql'' (но не ''localhost'')


Для большинства открытых вики есть реплицируемые базы данных. Их названия имеют вид <tt><язык><проект>_p</tt>, где <язык> - это язык (например, "ru", "en"), а <проект> - кодовое название проекта ("wiki" для Википедии, для остальных - "wiktionary", "wikibooks" и так далее). Вы можете их только читать. Список всех баз с информацией о языке и размере находится в таблице <tt>wiki</tt> базы данных <tt>toolserver</tt>.
Для большинства открытых вики есть реплицируемые базы данных. Их названия имеют вид <code><язык><проект>_p</code>, где <язык> это язык (например, «ru», «en»), а <проект> кодовое название проекта («wiki» для Википедии, для остальных «wiktionary», «wikibooks» и так далее). Вы можете их только читать. Список всех баз с информацией о языке и размере находится в таблице <code>wiki</code> базы данных <code>toolserver</code>.


Предоставлены следующие таблицы:
Предоставлены следующие таблицы:
Line 44: Line 42:
Из-за [http://bugs.mysql.com/bug.php?id=16016 бага в MySQL] запросы насчёт представлений работают неэффективно; мы надеемся, что рано или поздно это будет исправлено.
Из-за [http://bugs.mysql.com/bug.php?id=16016 бага в MySQL] запросы насчёт представлений работают неэффективно; мы надеемся, что рано или поздно это будет исправлено.


В некоторых из этих баз есть дополнительные индексы, не описанные в [http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/maintenance/tables.sql?view=markup стандарте]. Справка по ним хранится в <tt>/usr/local/etc/views</tt>. Если вам нужно добавить свой индекс, напишите нам.
В некоторых из этих баз есть дополнительные индексы, не описанные в [http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/maintenance/tables.sql?view=markup стандарте]. Справка по ним хранится в <code>/usr/local/etc/views</code>. Если вам нужно добавить свой индекс, напишите нам.


=== Представление текста в таблицах ''cur'' и ''text'' ===
=== Представление текста в таблицах ''cur'' и ''text'' ===


Текст в таблицах 'cur' и 'text' может быть сжатым или закодированным.
Текст в таблицах 'cur' и 'text' может быть сжатым или закодированным.


* для сжатого текста в old_flags есть флаг 'gzip' (zlib-сжатие без заголовков)
* для сжатого текста в old_flags есть флаг 'gzip' (zlib-сжатие без заголовков)
* текст с флагом "utf8" находится в кодировке UTF-8. Текст без этого флага может быть (а может и не быть) в ASCII (TODO: задокументировать).
* текст с флагом «utf8» находится в кодировке UTF-8. Текст без этого флага может быть (а может и не быть) в ASCII (TODO: задокументировать).
* текст с флагом "object" закодирован как PHP-объект; это может встречаться в :
* текст с флагом «object» закодирован как PHP-объект; это может встречаться в :
** отметках cur; объект PHP содержит cur_id строки в таблице cur с самим текстом.
** отметках cur; объект PHP содержит cur_id строки в таблице cur с самим текстом.
** blob-ы истории. Это специальное сжатое хранилище (TODO: задокументировать).
** blob-ы истории. Это специальное сжатое хранилище (TODO: задокументировать).
** что-нибудь ещё?
** что-нибудь ещё?
* тест с флагом "external" в old_flags хранится во внешних базах и пока ещё не доступен на zedler.
* тест с флагом «external» в old_flags хранится во внешних базах и пока ещё не доступен на zedler.


You can use the MediaWiki function <tt>Revision::getRevisionText</tt> to extract the actual text automatically (see Revision.php for details).
Вы можете использовать MediaWiki-функцию <code>Revision::getRevisionText</code> для получения текста (см. также Revision.php).


В будущем отсутствующий текст в базе будет браться из XML-дампа базы, но не ранее, чем мы сможем увеличить суммарный объём наших дисковых массивов.
At some point, the missing old text will be imported from an XML dump, and compressed data will be uncompressed. However, this needs to wait until we have more disk space available.


'''Внимание''': если в базе есть данные, помеченные флагом «latin1», то они закодированы ''не'' в ASCII. Чаще всего правильная кодировка — UTF-8. Это проблема возникла при создании совместимой с MySQL 4.0 реализации. Будьте внимательны и не давайте клиенту MySQL пробовать перевести данные в UTF-8 за вас, или вы получите мусор.
'''Warning''': the databases containing the data are marked as "latin1". However, they ''do not'' contain latin1 data. Most of the data is in UTF-8. This is a holdover from MySQL 4.0's (lack of) UTF-8 support. Be very careful that the MySQL client does not try to convert the data to UTF-8 for you, or you will end up with garbage.


=== Отметки времени ===
===Timestamps===


Timestamps are NOT numbers, they are strings consisting of numeric characters. So enclose timestamps in quotes (e.g. rc_timestamp > '200500000000' instead of rc_timestamp > 200500000000). If you forget this, your query will run ''much'' slower (up to 50x slower or more).
Временные отметки это ''не'' числа, а строки, состоящие из цифр. Поэтому всегда окружайте их кавычками (например, rc_timestamp > '200500000000' вместо rc_timestamp > 200500000000). Если вы об этом забудете, то запрос будет ''гораздо'' медленнее (в 50 раз и больше).


===SQL-Queries===
=== SQL-запросы ===


* '''Запросы-зомби:''' выход не останавливает длительные запросы. Если вы случайно инициировали запрос, требующий много времени, вы можете получить его идентификатор по команде <code>SHOW PROCESSLIST</code> и завершить его с помощью <code>KILL ''идентификатор''</code>
* '''Zombie queries:''' Just quitting won't stop long running queries. If you accidently started a query that needs too much time you can get its thread_id with <tt>SHOW PROCESSLIST</tt> and terminate it with <tt>KILL ''thread_id''</tt>
* '''Массовая вставка:''' вставка из файлов, в которых поля разделены символами табуляции, гораздо быстрее, чем вставка записей по отдельности. Используется следующая команда: <code>LOAD DATA LOCAL INFILE ''полный_путь_к_файлу'' IGNORE INTO TABLE ''имя_таблицы''</code>
* '''Bulk insert:''' Inserting tab-seperated files is much faster that inserting single records: <tt>LOAD DATA LOCAL INFILE ''absolute-path-to-file'' IGNORE INTO TABLE ''table''</tt>
* If you run slow queries on the database, you may want to read [http://mail.wikipedia.org/mailman/private/toolserver-l/2005-December/000092.html] for a way to make them faster.
* Если вам приходится запускать длительные запросы к базе данных, прочтите [http://mail.wikipedia.org/mailman/private/toolserver-l/2005-December/000092.html советы по оптимизации].


== Веб-хостинг ==
==Web hosting==


You have a web page at <tt><nowiki>http://tools.wikimedia.de/~<username>/</nowiki></tt>. Put the contents in <tt>~/public_html/</tt>. You can use PHP for scripting; alternatively, you can use CGI scripts by putting them in <tt>~/public_html/cgi-bin/</tt>. Both CGI scripts and PHP scripts will run as your uid, not Apache's.
Вам предоставляется хостинг по адресу <code><nowiki>http://tools.wikimedia.de/~<username>/</nowiki></code>. Помещайте содержимое в <code>~/public_html/</code>. Вы можете использовать PHP или качестве альтернативы) CGI-скрипты (последние следует располагать в каталоге <code>~/public_html/cgi-bin/</code>). Как CGI-, так и PHP-скрипты запускаются под вашим идентификатором пользователя.


Webalizer statistics for tools.wikimedia.de are here: [http://tools.wikimedia.de/~daniel/stats/] (updated every 6 hours). Contact [[User:Duesentrieb]] if this is broken.
Статистика (сгенерированная с помощью [[Webalizer]]) для узла tools.wikimedia.de доступна здесь: [http://tools.wikimedia.de/~daniel/stats/] (обновляется раз в 6 часов). Обратитесь к участнику [[user:Duesentrieb|Duesentrieb]] в случае если с этим возникнут проблемы.


== Дисковые квоты ==
==Disk quota==


Для вас установлена дисковая квота в 256 мегабайт на файловой системе <code>/u01</code> . Это сделано не для того, чтобы ограничить использование, а чтобы не дать пользователям по ошибке занять слишком много места. Мы можем увеличить этот лимит; для этого напишите на <code>zedler-admins@wikimedia.org</code> с указанием того, сколько места вам нужно и зачем.
You have a disk quota of 256MB on the <tt>/u01</tt> filesystem. This is not meant to restrict usage; rather, to prevent users from accidentally using too much disk space. If you would like a larger quota, please mail <tt>zedler-admins@wikimedia.org</tt> explaining how much you need and why.


== Программы ==
==Software==


Большинство обычных средств, которые могли бы вам понадобится, установлены здесь. Напишите администраторам, если вам понадобится что-то ещё. Следует заметить, что:
Most of the usual software you would expect is installed. Ask zedler-admins if you want something else. There are a few points to note:


; 64-битное окружение : по умолчанию на Solaris всё компилируется в 32-битном режиме. Чтобы получить 64-битный исполняемые файл, используйте «<code>-xarch=amd64</code>» (для cc) или «<code>-m64</code>» (для gcc); mysql : 32-битные клиентские библиотеки находятся в <code>/opt/mysql50/</code>, а 64-битные — в <code>/usr/local/mysql/</code>
; 64-bit compilation environment : by default, on Solaris, everything is compiled in 32-bit mode. to compile a 64-bit binary, use "<code>-xarch=amd64</code>" (cc) or "<code>-m64</code>" (gcc)
; Компиляторы C/C++ : доступны два: GCC и Sun Studio. Если вы предпочитаете gcc, используйте <code>/usr/sfw/bin/gcc</code> (C) или <code>/usr/sfw/bin/g++</code> (C++). Для Studio используйте <code>/opt/SUNWspro/bin/cc</code> (C) или <code>/opt/SUNWspro/bin/CC</code> (C++).
; mysql : mysql 32-bit client libraries are installed in <tt>/opt/mysql50/</tt>. the 64-bit libraries are in <tt>/usr/local/mysql/</tt>
; <code>/bin/sh</code> : не используйте его! Используйте <code>/usr/bin/ksh</code> или <code>/usr/xpg4/bin/sh</code>
; C/C++ compiler : two are available: GCC and Sun Studio. for gcc, use <tt>/usr/sfw/bin/gcc</tt> (C) or <tt>/usr/sfw/bin/g++</tt> (C++). for Studio, use <tt>/opt/SUNWspro/bin/cc</tt> (C) or <tt>/opt/SUNWspro/bin/CC</tt> (C++).
; <tt>/bin/sh</tt> : don't use it. use <tt>/usr/bin/ksh</tt> or <tt>/usr/xpg4/bin/sh</tt>


=== GNU userland ===
=== Окружение GNU ===
Если вы предпочитаете использовать GNU-версии утилит, добавьте <code>/usr/local/gnu/bin</code> в начало переменной окружения PATH:
if you prefer to use a GNU-style userland, place <tt>/usr/local/gnu/bin</tt> at the front of your path:
$ PATH=/usr/local/gnu/bin:$PATH; export PATH
$ export PATH=/usr/local/gnu/bin:$PATH
you can add this to your <tt>.profile</tt>.
Вы можете добавить это в свой файл <code>~/.profile</code>.


== Отложенные задания ==
==Batch jobs==


Иногда возникает необходимость запустить длительные процессы, создающие большую нагрузку на процессор. Вы можете оптимизировать такие задачи с помощью Fair Share Scheduler[http://docs.sun.com/app/docs/doc/817-1592/6mhahuojp?a=view] (он следит, чтобы система не перегружалась).
Sometimes, people want to run long, slow jobs that use a lot of CPU. but they don't want to disturb other users with these things. using the Fair Share Scheduler[http://docs.sun.com/app/docs/doc/817-1592/6mhahuojp?a=view], it's possible to allocate these processes less CPU time. (in our particular configuration, if one normal job and one batch both are both on the same CPU, the batch job will only receive 20% of the CPU time).


Чтобы запустить новый процесс в классе планирования <code>batch</code> (отложенное задание), используйте <code>newtask</code>:
to start a new process in the <tt>batch</tt> scheduling class, use <tt>newtask</tt>:
$ /bin/id -p # (GNU id, /usr/local/gnu/bin/id, does not support the p flag)
$ /bin/id -p # (GNU id, /usr/local/gnu/bin/id, does not support the p flag)
uid=1001(kate) gid=102(users) projid=3(default)
uid=1001(kate) gid=102(users) projid=3(default)
Line 108: Line 105:
$ id -p
$ id -p
uid=1001(kate) gid=102(users) projid=4(batch)
uid=1001(kate) gid=102(users) projid=4(batch)
любые процессы, которые вы запустите здесь, продолжат выполняться с меньшим приоритетом, когда вы вернётесь в свою обычную оболочку с помощью
any processes you now start will run with lower priority until you return to your default shell with
$ exit
$ exit



Latest revision as of 04:59, 6 April 2020

Здесь приведена информация для пользователей zedler.

Ваш аккаунт

[edit]

У вас есть учётная запись. Вы можете зайте по ssh на сервере login-services.zedler.knams.wikimedia.org (или or tools.wikimedia.org — краткое имя). Сейчас его IP-адрес — 145.97.39.142.

Для всех аккаунтов задано время истечения в будущем (выводится при каждом входе). Используемые аккаунты нужно обновить в соответствии с правилами (см. Toolserver).

Применяется аутентификация с использованием публичных ключей. Чтобы добавить новый SSH-ключ, измените ~/.ssh/authorized_keys и допишите его туда на новой строке (формат OpenSSH, только ключи второй версии SSH).

Если у вас возникли проблемы, напишите на zedler-admins@wikimedia.org. В качестве альтернативы, можно воспользоваться списком рассылки toolserver-l или же спросить в IRC-канале #wikimedia-toolserver.

База данных

[edit]

У вас есть база с названием «u_<имяпользователя>». Пароль к ней записан в вашем файле ~/.my.cnf. К ней имеете доступ на запись только вы, но таблицы, названия которых начинаются с «pub_», может прочитать любой другой пользователь. Имя SQL-сервера — sql (но не localhost)

Для большинства открытых вики есть реплицируемые базы данных. Их названия имеют вид <язык><проект>_p, где <язык> — это язык (например, «ru», «en»), а <проект> — кодовое название проекта («wiki» для Википедии, для остальных — «wiktionary», «wikibooks» и так далее). Вы можете их только читать. Список всех баз с информацией о языке и размере находится в таблице wiki базы данных toolserver.

Предоставлены следующие таблицы:

  • categorylinks
  • cur
  • hitcounter
  • image
  • imagelinks
  • interwiki
  • logging
  • math
  • oldimage
  • page
  • pagelinks
  • querycache
  • revision
  • site_stats
  • text
  • updates
  • user_groups
  • recentchanges
  • archive
  • user_ids (урезанная таблица user: только поля user_name и user_id)

Из-за бага в MySQL запросы насчёт представлений работают неэффективно; мы надеемся, что рано или поздно это будет исправлено.

В некоторых из этих баз есть дополнительные индексы, не описанные в стандарте. Справка по ним хранится в /usr/local/etc/views. Если вам нужно добавить свой индекс, напишите нам.

Представление текста в таблицах cur и text

[edit]

Текст в таблицах 'cur' и 'text' может быть сжатым или закодированным.

  • для сжатого текста в old_flags есть флаг 'gzip' (zlib-сжатие без заголовков)
  • текст с флагом «utf8» находится в кодировке UTF-8. Текст без этого флага может быть (а может и не быть) в ASCII (TODO: задокументировать).
  • текст с флагом «object» закодирован как PHP-объект; это может встречаться в :
    • отметках cur; объект PHP содержит cur_id строки в таблице cur с самим текстом.
    • blob-ы истории. Это специальное сжатое хранилище (TODO: задокументировать).
    • что-нибудь ещё?
  • тест с флагом «external» в old_flags хранится во внешних базах и пока ещё не доступен на zedler.

Вы можете использовать MediaWiki-функцию Revision::getRevisionText для получения текста (см. также Revision.php).

В будущем отсутствующий текст в базе будет браться из XML-дампа базы, но не ранее, чем мы сможем увеличить суммарный объём наших дисковых массивов.

Внимание: если в базе есть данные, помеченные флагом «latin1», то они закодированы не в ASCII. Чаще всего правильная кодировка — UTF-8. Это проблема возникла при создании совместимой с MySQL 4.0 реализации. Будьте внимательны и не давайте клиенту MySQL пробовать перевести данные в UTF-8 за вас, или вы получите мусор.

Отметки времени

[edit]

Временные отметки — это не числа, а строки, состоящие из цифр. Поэтому всегда окружайте их кавычками (например, rc_timestamp > '200500000000' вместо rc_timestamp > 200500000000). Если вы об этом забудете, то запрос будет гораздо медленнее (в 50 раз и больше).

SQL-запросы

[edit]
  • Запросы-зомби: выход не останавливает длительные запросы. Если вы случайно инициировали запрос, требующий много времени, вы можете получить его идентификатор по команде SHOW PROCESSLIST и завершить его с помощью KILL идентификатор
  • Массовая вставка: вставка из файлов, в которых поля разделены символами табуляции, гораздо быстрее, чем вставка записей по отдельности. Используется следующая команда: LOAD DATA LOCAL INFILE полный_путь_к_файлу IGNORE INTO TABLE имя_таблицы
  • Если вам приходится запускать длительные запросы к базе данных, прочтите советы по оптимизации.

Веб-хостинг

[edit]

Вам предоставляется хостинг по адресу http://tools.wikimedia.de/~<username>/. Помещайте содержимое в ~/public_html/. Вы можете использовать PHP или (в качестве альтернативы) CGI-скрипты (последние следует располагать в каталоге ~/public_html/cgi-bin/). Как CGI-, так и PHP-скрипты запускаются под вашим идентификатором пользователя.

Статистика (сгенерированная с помощью Webalizer) для узла tools.wikimedia.de доступна здесь: [1] (обновляется раз в 6 часов). Обратитесь к участнику Duesentrieb в случае если с этим возникнут проблемы.

Дисковые квоты

[edit]

Для вас установлена дисковая квота в 256 мегабайт на файловой системе /u01 . Это сделано не для того, чтобы ограничить использование, а чтобы не дать пользователям по ошибке занять слишком много места. Мы можем увеличить этот лимит; для этого напишите на zedler-admins@wikimedia.org с указанием того, сколько места вам нужно и зачем.

Программы

[edit]

Большинство обычных средств, которые могли бы вам понадобится, установлены здесь. Напишите администраторам, если вам понадобится что-то ещё. Следует заметить, что:

64-битное окружение
по умолчанию на Solaris всё компилируется в 32-битном режиме. Чтобы получить 64-битный исполняемые файл, используйте «-xarch=amd64» (для cc) или «-m64» (для gcc); mysql : 32-битные клиентские библиотеки находятся в /opt/mysql50/, а 64-битные — в /usr/local/mysql/
Компиляторы C/C++
доступны два: GCC и Sun Studio. Если вы предпочитаете gcc, используйте /usr/sfw/bin/gcc (C) или /usr/sfw/bin/g++ (C++). Для Studio используйте /opt/SUNWspro/bin/cc (C) или /opt/SUNWspro/bin/CC (C++).
/bin/sh
не используйте его! Используйте /usr/bin/ksh или /usr/xpg4/bin/sh

Окружение GNU

[edit]

Если вы предпочитаете использовать GNU-версии утилит, добавьте /usr/local/gnu/bin в начало переменной окружения PATH:

$ export PATH=/usr/local/gnu/bin:$PATH

Вы можете добавить это в свой файл ~/.profile.

Отложенные задания

[edit]

Иногда возникает необходимость запустить длительные процессы, создающие большую нагрузку на процессор. Вы можете оптимизировать такие задачи с помощью Fair Share Scheduler[2] (он следит, чтобы система не перегружалась).

Чтобы запустить новый процесс в классе планирования batch (отложенное задание), используйте newtask:

$ /bin/id -p # (GNU id, /usr/local/gnu/bin/id, does not support the p flag)
uid=1001(kate) gid=102(users) projid=3(default)
$ newtask -p batch bash
$ id -p
uid=1001(kate) gid=102(users) projid=4(batch)

любые процессы, которые вы запустите здесь, продолжат выполняться с меньшим приоритетом, когда вы вернётесь в свою обычную оболочку с помощью

$ exit