Заметки: различия между версиями
Материал из Linux Wiki
Перейти к навигацииПерейти к поиску
Rain (обсуждение | вклад) |
Rain (обсуждение | вклад) |
||
(не показано 12 промежуточных версий этого же участника) | |||
Строка 57: | Строка 57: | ||
# End – Allow remote logging | # End – Allow remote logging | ||
</pre> | </pre> | ||
* gcc -fverbose-asm -march=native -Q --help=target - выяснение возможностей процессора | |||
* http://www.linux.org.ru/forum/general/4821407 - передача пароля и прочих параметров в MySQL | |||
* http://www.linux.org.ru/forum/general/4816520 - за что отвечает какая кодировка в MySQL | |||
* [http://www.freebsd.org/cgi/cvsweb.cgi/ports/net-p2p/microdc2/files/patch-ab?rev=1.1 Патч для microdc2 (консольного DC-клиента) для сборки на современных системах] | |||
* /sys/block/mdN/md/stripe_cache_size - размер кэша софт-RAID'a. [http://romanrm.ru/mdadm-raid Почитать можно тут]. Актуально для RAID 5/6 (из популярных), дефолтно значение очень низкое - на уровне 1 Мб на диск. Рекомендуется значение на уровне нескольких тысяч. | |||
* Сброс админ-пароля в Dlink DIR-* ([http://securityvulns.ru/news/D-Link/DIR-300/UA.html подробнее...]): | |||
<nowiki>wget http://someip:8080/tools_admin.php --post-data="ACTION_POST=LOGIN&LOGIN_USER=a&LOGIN_PASSWD=b&login=+Log+In+&NO_NEED_AUTH=1&AUTH_GROUP=0&admin_name=admin&admin_password1=temp123"</nowiki> | |||
* Использование sendxmpp вместе с аккаунтами Google (или хостами с сервером на отдельном домене через SRV) - [http://ubuntuforums.org/showthread.php?t=1018244 тред], пример, работавший с xmpp:jabberworld.info: | |||
echo 123 | /usr/bin/sendxmpp -o jabberworld.info jabberworld.info rain | |||
где -o jabberworld.info - домен JID'a, jabberworld.info - домен целевого юзера, rain - имя целевого юзера. В .sendxmpprc: имя@SRV-домен пароль. Можно перенести -o jabberworld.info (в мане упоминается как component) в конфиг, тогда jabberworld.info ставится после пароля. | |||
* Если в fail2ban требуется указать 2 одинаковых jail'a, но с разными параметрами - например, нужно банить кого-то с меньшим временем - то jail с более мягкими ограничениями следует описывать первым, а в jail'e с более жесткими ограничениями добавить поле "ignoreip = адрес1 адрес2 сеть/11" | |||
* inotify: | |||
<pre> | |||
/proc/sys/filesystem/inotify/max_queued_events is the maximum number of events that can be queued at once. | |||
If the queue reaches this size, new events are dropped, but the IN_Q_OVERFLOW event is always sent. | |||
With a significantly large queue, overflows are rare even if watching many objects. | |||
The default value is 16,384 events per queue. | |||
/proc/sys/filesystem/inotify/max_user_instances is the maximum number of inotify instances that a given user can instantiate. | |||
The default value is 128 instances, per user. | |||
/proc/sys/filesystem/inotify/max_user_watches is the maximum number of watches per instance. | |||
The default value is 8,192 watches, per instance. | |||
</pre> | |||
* Degraded raid | |||
<pre> | |||
Boot from Degraded Disk | |||
If the default HDD fails then RAID will ask you to boot from degraded disk. | |||
If your server is located in a remote area, the best practice may be to configure this to occur automatically. | |||
Since Ubuntu 8.10 there is a new feature to boot automatically if default RAID disk fail. Simply: | |||
1. edit /etc/initramfs-tools/conf.d/mdadm | |||
2. change "BOOT_DEGRADED=false" to "BOOT_DEGRADED=true" | |||
NB: | |||
* Additionally, this can be specified on the kernel boot line with the bootdegraded=[true|false] | |||
* You also can use #dpkg-reconfigure mdadm rather than CLI! | |||
</pre> | |||
== Расчет параметров worker-модуля Apache == | |||
; StartServers : задает лишь начальное число процессов, запускаемых при старте сервера. Может быть любым небольшим, но есть смысл поставить его, исходя из типичной нагрузки на сервер - если, например, обычно активно работают 10 процессов (не потоков), то есть смысл ориентироваться на это значение | |||
; ServerLimit : максимальное число процессов Апача, которое может быть запущено. | |||
; ThreadsPerChild : Каждый процесс порождает указанное число тредов, которые и обрабатывают запросы. | |||
; MaxClients : максимальное число одновременных запросов | |||
; MaxRequestsPerChild : максимальное число запросов на процесс (тред?), после чего тот перезапускается | |||
; ThreadLimit : Во время graceful-рестарта сервера число тредов на процесс может увеличиваться до этого значения (как я понимаю, для того, чтобы была минимальная просадка производительности, пока перезапускается соседнее дерево тредов) | |||
; MinSpareThreads : сервером будет поддерживаться минимум указанное тут число тредов "на подхвате" | |||
; MaxSpareThreads : если число свободных тредов будет превышать указанное - лишние будут уничтожаться | |||
=== Расчеты === | |||
* MaxClients = ServerLimit * ThreadsPerChild | |||
* ThreadLimit = 2 * ThreadsPerChild | |||
* ThreadsPerChild - обычно на уровне 20-30 | |||
* ServerLimit - на пару с ThreadsPerChild высчитываем, исходя из максимального числа необходимых одновременно обрабатываемых запросов. | |||
* MinSpareThreads - ставим немного ниже, чем ThreadsPerChild, для того, чтобы при поступлении запросов заранее порождался резервный процесс со своим деревом тредов. Логика: когда запросов нет - имеем, например, 32 треда и 30 minspare - новые процессы и треды не порождаются. Пришло несколько запросов (например, 5, т.е., 1/6 от числа потоков на процесс - порождаем новый, чтобы когда придет еще больше запросов - уже были готовые треды. В зависимости от нагрузки на сервер регулируем соотношение). Стоит помнить, что при недостатке даже одного треда порождается сразу ThreadsPerChild тредов, так как порождается новый процесс сервера | |||
* MaxSpareThreads - логика примерно такая же, как в случае MinSpareThreads, но в обратную сторону: пока запросы приходят и обрабатываются (например, лимит ThreadsPerChild = 32. а MaxSpareThreads = 35, а обрабатываются сейчас 5 запросов) - держим резервный процесс. Когда запросы рассосались - гасим лишний процесс. В зависимости от нагрузки и интенсивности запросов, оставляем больше или меньше процессов с их тредами "на подхвате". | |||
[[Category:Общее]] | [[Category:Общее]] |
Текущая версия на 08:50, 23 июля 2012
- Для корректной работы 3D (например, для работы драйвера radeon) в системе должен быть установлен пакет libgl1-mesa-dri, он предоставляет библиотеки, подгружаемые иксами, благодаря которым работает 3D.
- Обновление альтернатив в Debian - update-alternatives --config что_обновлять
- Сливание двух каталогов в консоли (так, как это делается в графике) в случае, если подкаталоги имеют одинаковое название - rsync -av --remove-source-files откуда/ куда/. Недостаток - файлы копируются, после чего удаляются, что 1 - долго; 2 - может не сработать, если есть всего пара крупных файлов, а места нет.
- Установка темы для GTK-приложения в консоли: GTK2_RC_FILES=/path/to/your/theme/gtkrc application-command. Подробнее...
- Таблица VGA-видеорежимов для Linux-ядра
----------------------------------------------------------------- VGA settings ----------------------------------------------------------------- 640x480 800x600 1024x768 1280x1024 256 colors 768 771 773 775 32K colors 784 787 790 793 64K colors 785 788 791 794 16M colors 786 789 792 795 --------------------------------------------------------------
- phpBB2: для того, чтобы сделать произвольного пользователя администратором, надо выполнить следующий запрос:
update phpbb_users set user_level = '1' where username = 'Rain';
- Создание загрузочного диска Windows: mkisofs -iso-level 3 -N -b boot.bin -no-emul-boot -JR -o file.iso content/
- Замер скоростных характеристик винчестера через hdparm:
- Чтение из оперативной памяти (чтение уже кэшированных файлов):
root@mws64:~# hdparm -T /dev/sda
/dev/sda: Timing cached reads: 2664 MB in 2.00 seconds = 1332.99 MB/sec
- Чтение из кэша винчестера. Иначе говоря, скорость работы с кэшем, и, как следствие - максимально возможная теоретическая скорость записи на диск (так как данные обычно попадают сначала в кэш, а уже потом сливаются на диск):
root@mws64:~# hdparm --direct -T /dev/sda
/dev/sda: Timing O_DIRECT cached reads: 490 MB in 2.00 seconds = 244.44 MB/sec
- Чтение напрямую с диска - максимальная скорость чтения некэшированных блоков данных:
root@mws64:~# hdparm --direct -t /dev/sda
/dev/sda: Timing O_DIRECT disk reads: 232 MB in 3.02 seconds = 76.76 MB/sec
- Максимальную скорость записи можно проверить, записав большой объем данных на диск и синхронизировав состояние кэша с диском.
- Для воспроизведения видео в mplayer, захваченного с некоторых сетевых видеокамер (в частности, D-Link DCS-900, формат mjpeg) при помощи wget, необходимо установить пакет ffmpeg (вероятно, требуется библиотека libavdevice, которую он тянет по зависимостям).
- Переменная для указания пути подгрузки динамических библиотек - LD_LIBRARY_PATH
- http://www.linux.org.ru/view-message.jsp?msgid=3968366 - обсуждение WD Caviar Green Power.
- http://www.linux.org.ru/view-message.jsp?msgid=3968756 - обсуждение alsa, форматов, тестовая дорожка для настройки карт.
- Включение перенаправления логгируемых сообщений в rsyslogd:
On the client you want to log from: vi /etc/rsyslog.conf … *.* @RemoteSyslogIPAddress:Port … Example: *.* @172.18.1.50:514 On the remote logging server: vi /etc/rsyslog.conf … # Begin – Allow remote logging $ModLoad imudp.so $UDPServerRun 514 # End – Allow remote logging
- gcc -fverbose-asm -march=native -Q --help=target - выяснение возможностей процессора
- http://www.linux.org.ru/forum/general/4821407 - передача пароля и прочих параметров в MySQL
- http://www.linux.org.ru/forum/general/4816520 - за что отвечает какая кодировка в MySQL
- Патч для microdc2 (консольного DC-клиента) для сборки на современных системах
- /sys/block/mdN/md/stripe_cache_size - размер кэша софт-RAID'a. Почитать можно тут. Актуально для RAID 5/6 (из популярных), дефолтно значение очень низкое - на уровне 1 Мб на диск. Рекомендуется значение на уровне нескольких тысяч.
- Сброс админ-пароля в Dlink DIR-* (подробнее...):
wget http://someip:8080/tools_admin.php --post-data="ACTION_POST=LOGIN&LOGIN_USER=a&LOGIN_PASSWD=b&login=+Log+In+&NO_NEED_AUTH=1&AUTH_GROUP=0&admin_name=admin&admin_password1=temp123"
- Использование sendxmpp вместе с аккаунтами Google (или хостами с сервером на отдельном домене через SRV) - тред, пример, работавший с xmpp:jabberworld.info:
echo 123 | /usr/bin/sendxmpp -o jabberworld.info jabberworld.info rain
где -o jabberworld.info - домен JID'a, jabberworld.info - домен целевого юзера, rain - имя целевого юзера. В .sendxmpprc: имя@SRV-домен пароль. Можно перенести -o jabberworld.info (в мане упоминается как component) в конфиг, тогда jabberworld.info ставится после пароля.
- Если в fail2ban требуется указать 2 одинаковых jail'a, но с разными параметрами - например, нужно банить кого-то с меньшим временем - то jail с более мягкими ограничениями следует описывать первым, а в jail'e с более жесткими ограничениями добавить поле "ignoreip = адрес1 адрес2 сеть/11"
- inotify:
/proc/sys/filesystem/inotify/max_queued_events is the maximum number of events that can be queued at once. If the queue reaches this size, new events are dropped, but the IN_Q_OVERFLOW event is always sent. With a significantly large queue, overflows are rare even if watching many objects. The default value is 16,384 events per queue. /proc/sys/filesystem/inotify/max_user_instances is the maximum number of inotify instances that a given user can instantiate. The default value is 128 instances, per user. /proc/sys/filesystem/inotify/max_user_watches is the maximum number of watches per instance. The default value is 8,192 watches, per instance.
- Degraded raid
Boot from Degraded Disk If the default HDD fails then RAID will ask you to boot from degraded disk. If your server is located in a remote area, the best practice may be to configure this to occur automatically. Since Ubuntu 8.10 there is a new feature to boot automatically if default RAID disk fail. Simply: 1. edit /etc/initramfs-tools/conf.d/mdadm 2. change "BOOT_DEGRADED=false" to "BOOT_DEGRADED=true" NB: * Additionally, this can be specified on the kernel boot line with the bootdegraded=[true|false] * You also can use #dpkg-reconfigure mdadm rather than CLI!
Расчет параметров worker-модуля Apache
- StartServers
- задает лишь начальное число процессов, запускаемых при старте сервера. Может быть любым небольшим, но есть смысл поставить его, исходя из типичной нагрузки на сервер - если, например, обычно активно работают 10 процессов (не потоков), то есть смысл ориентироваться на это значение
- ServerLimit
- максимальное число процессов Апача, которое может быть запущено.
- ThreadsPerChild
- Каждый процесс порождает указанное число тредов, которые и обрабатывают запросы.
- MaxClients
- максимальное число одновременных запросов
- MaxRequestsPerChild
- максимальное число запросов на процесс (тред?), после чего тот перезапускается
- ThreadLimit
- Во время graceful-рестарта сервера число тредов на процесс может увеличиваться до этого значения (как я понимаю, для того, чтобы была минимальная просадка производительности, пока перезапускается соседнее дерево тредов)
- MinSpareThreads
- сервером будет поддерживаться минимум указанное тут число тредов "на подхвате"
- MaxSpareThreads
- если число свободных тредов будет превышать указанное - лишние будут уничтожаться
Расчеты
- MaxClients = ServerLimit * ThreadsPerChild
- ThreadLimit = 2 * ThreadsPerChild
- ThreadsPerChild - обычно на уровне 20-30
- ServerLimit - на пару с ThreadsPerChild высчитываем, исходя из максимального числа необходимых одновременно обрабатываемых запросов.
- MinSpareThreads - ставим немного ниже, чем ThreadsPerChild, для того, чтобы при поступлении запросов заранее порождался резервный процесс со своим деревом тредов. Логика: когда запросов нет - имеем, например, 32 треда и 30 minspare - новые процессы и треды не порождаются. Пришло несколько запросов (например, 5, т.е., 1/6 от числа потоков на процесс - порождаем новый, чтобы когда придет еще больше запросов - уже были готовые треды. В зависимости от нагрузки на сервер регулируем соотношение). Стоит помнить, что при недостатке даже одного треда порождается сразу ThreadsPerChild тредов, так как порождается новый процесс сервера
- MaxSpareThreads - логика примерно такая же, как в случае MinSpareThreads, но в обратную сторону: пока запросы приходят и обрабатываются (например, лимит ThreadsPerChild = 32. а MaxSpareThreads = 35, а обрабатываются сейчас 5 запросов) - держим резервный процесс. Когда запросы рассосались - гасим лишний процесс. В зависимости от нагрузки и интенсивности запросов, оставляем больше или меньше процессов с их тредами "на подхвате".