Toolserver/For users/Ru: Difference between revisions
more |
m Fixing obselete HTML tag lint errors (i.e. <tt> → <code>) |
||
| (14 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
{{ |
{{Toolserver/Ru}} |
||
{{Toolserver}} |
|||
Здесь приведена информация для пользователей zedler. |
Здесь приведена информация для пользователей zedler. |
||
== Ваш аккаунт == |
== Ваш аккаунт == |
||
У вас есть учётная запись. Вы можете зайте по ssh на сервере < |
У вас есть учётная запись. Вы можете зайте по ssh на сервере <code>login-services.zedler.knams.wikimedia.org</code> (или or <code>tools.wikimedia.org</code> — краткое имя). Сейчас его IP-адрес — 145.97.39.142. |
||
Для всех аккаунтов задано время истечения в будущем (выводится при каждом входе). Используемые аккаунты нужно обновить в соответствии с правилами (см. [[Toolserver]]). |
Для всех аккаунтов задано время истечения в будущем (выводится при каждом входе). Используемые аккаунты нужно обновить в соответствии с правилами (см. [[Toolserver]]). |
||
Применяется аутентификация с использованием публичных ключей. Чтобы добавить новый SSH- |
Применяется аутентификация с использованием публичных ключей. Чтобы добавить новый SSH-ключ, измените <code>~/.ssh/authorized_keys</code> и допишите его туда на новой строке (формат OpenSSH, только ключи второй версии SSH). |
||
Если у вас возникли проблемы, напишите на < |
Если у вас возникли проблемы, напишите на <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]. |
||
== База данных == |
== База данных == |
||
У вас есть база с названием |
У вас есть база с названием «<code>u_<имяпользователя></code>». Пароль к ней записан в вашем файле <code>~/.my.cnf</code>. К ней имеете доступ на запись только вы, но таблицы, названия которых начинаются с «<code>pub_</code>», может прочитать любой другой пользователь. Имя SQL-сервера — ''sql'' (но не ''localhost'') |
||
Для большинства открытых вики есть реплицируемые базы данных. Их названия имеют вид < |
Для большинства открытых вики есть реплицируемые базы данных. Их названия имеют вид <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 стандарте]. Справка по ним хранится в < |
В некоторых из этих баз есть дополнительные индексы, не описанные в [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' может быть сжатым или закодированным. |
||
* для сжатого текста в old_flags есть флаг 'gzip' (zlib-сжатие без заголовков) |
* для сжатого текста в old_flags есть флаг 'gzip' (zlib-сжатие без заголовков) |
||
* текст с флагом |
* текст с флагом «utf8» находится в кодировке UTF-8. Текст без этого флага может быть (а может и не быть) в ASCII (TODO: задокументировать). |
||
* текст с флагом |
* текст с флагом «object» закодирован как PHP-объект; это может встречаться в : |
||
** отметках cur; объект PHP содержит cur_id строки в таблице cur с самим текстом. |
** отметках cur; объект PHP содержит cur_id строки в таблице cur с самим текстом. |
||
** blob-ы истории. Это специальное сжатое хранилище (TODO: задокументировать). |
** blob-ы истории. Это специальное сжатое хранилище (TODO: задокументировать). |
||
** что-нибудь ещё? |
** что-нибудь ещё? |
||
* тест с флагом |
* тест с флагом «external» в old_flags хранится во внешних базах и пока ещё не доступен на zedler. |
||
Вы можете использовать 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=== |
|||
Временные отметки — это ''не'' числа, а строки, состоящие из цифр. Поэтому всегда окружайте их кавычками (например, rc_timestamp > '200500000000' вместо rc_timestamp > 200500000000). Если вы об этом забудете, то запрос будет ''гораздо'' медленнее (в 50 раз и больше). |
|||
===SQL- |
=== 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> |
|||
* |
* Если вам приходится запускать длительные запросы к базе данных, прочтите [http://mail.wikipedia.org/mailman/private/toolserver-l/2005-December/000092.html советы по оптимизации]. |
||
== Веб-хостинг == |
|||
==Web hosting== |
|||
Вам предоставляется хостинг по адресу <code><nowiki>http://tools.wikimedia.de/~<username>/</nowiki></code>. Помещайте содержимое в <code>~/public_html/</code>. Вы можете использовать PHP или (в качестве альтернативы) CGI-скрипты (последние следует располагать в каталоге <code>~/public_html/cgi-bin/</code>). Как CGI-, так и PHP-скрипты запускаются под вашим идентификатором пользователя. |
|||
Webalizer |
Статистика (сгенерированная с помощью [[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) |
|||
| ⚫ | |||
; mysql : mysql 32-bit client libraries are installed in <tt>/opt/mysql50/</tt>. the 64-bit libraries are in <tt>/usr/local/mysql/</tt> |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
=== |
=== Окружение 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:$ |
$ export PATH=/usr/local/gnu/bin:$PATH |
||
Вы можете добавить это в свой файл <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
- Toolserverангл
- Введениеангл
- Докладангл
- Проектыангл
- For users
- Новостиангл
- Журнал работангл
- Презентацияангл для Wikimania 2006
Здесь приведена информация для пользователей 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