LINUX.ORG.RU

Сообщения j0ker1

 

[php] strtoupper и кирилица

Форум — General

Добрый день! Внезапно для меня появилась проблема, что функция strtoupper не работает с кириллицей. Гугл с ходу выдает решение:

setlocale(LC_ALL, 'ru_RU.UTF-8');

Перепробовал уже все доступные в системе локали (locale -a | grep ru), но нет никакого результата.

function _strtoupper ( $str ) {
        return strtr ( $str, 'ёйцукенгшщзхъфывапролджэячсмитьбю', 'ЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ' );
}

echo _strtoupper ('ФЫВфыв');

Моего девелопера не устраивает, говорит, что не собирается править полторы тысячи скриптов.

Подскажите, какие еще есть варианты?

 

j0ker1
()

Проблема с производительностью дисков

Форум — General

Как думаете, что будет с производительностью сервера, если увеличить оперативную память с 2-х до 18-ти гигабайт? Возрастет? Нет! По крайней мере, не в моем случае.

Был сервер на RHEL 5.5 (i386), добавил в него «мозгов» и поставил CentOS 5.5 (x64).

Результат Unix Benchmark 4.1.0 WHT2 до:

                     INDEX VALUES
TEST                                        BASELINE     RESULT      INDEX

Dhrystone 2 using register variables        376783,0 21661256,9      574,9
Double-Precision Whetstone                      83,0     1271,6      153,2
Execl Throughput                               188,0     4053,9      215,6
File Copy 1024 bufsize 2000 maxblocks         2672,0   403216,0     1509,0
File Copy 256 bufsize 500 maxblocks           1077,0   122101,0     1133,7
File Read 4096 bufsize 8000 maxblocks        15382,0  1108906,0      720,9
Pipe-based Context Switching                 15448,0   706807,0      457,5
Pipe Throughput                             111814,0  1974123,4      176,6
Process Creation                               569,0    32172,3      565,4
Shell Scripts (8 concurrent)                    44,0     2992,0      680,0
System Call Overhead                        114433,0  3173518,6      277,3
                                                                 =========
     FINAL SCORE                                                     461,4

и после:

                     INDEX VALUES
TEST                                        BASELINE     RESULT      INDEX

Dhrystone 2 using register variables        376783.7 64795848.3     1719.7
Double-Precision Whetstone                      83.1     1656.1      199.3
Execl Throughput                               188.3     4699.8      249.6
File Copy 1024 bufsize 2000 maxblocks         2672.0    69727.0      261.0
File Copy 256 bufsize 500 maxblocks           1077.0    40968.0      380.4
File Read 4096 bufsize 8000 maxblocks        15382.0    74092.0       48.2
Pipe-based Context Switching                 15448.6  1706988.4     1104.9
Pipe Throughput                             111814.6  7318752.9      654.5
Process Creation                               569.3    12664.0      222.4
Shell Scripts (8 concurrent)                    44.8      302.6       67.5
System Call Overhead                        114433.5 12691694.8     1109.1
                                                                 =========
     FINAL SCORE                                                     329.3

Если посмотреть на цифры повнимательней, то можно заметить, что улучшения есть, но всю картину испортили «File Copy» и «Process Creation». Я так понимаю, что это жесткие диски виноваты? Подскажите, в какую сторону вообще копать?

Если что, вот примерная конфигурация: 2 x Intel Xeon E5345, Supermicro X7DVL-E, 2 x WD5000ABYS (RAID1), 3ware 9550SXU-4LP.

j0ker1
()

[на рецензию] Traffic Control (TC)

Форум — Admin

Чуть не вывихнул мозг, разбираясь с «Linux Advanced Routing & Traffic Control», и наконец-то дописал правила TC для домашнего роутера, а теперь представляю Вам на рецензию.

Имеется входящий 4-мегабитный канал от Avangard DSL с 8-мегабитной внутренней локальной сетью и «Яндекс.Локальная сеть». Максимальная скорость исходящего канала так же варьируется, в моем случае от полумегабита до мегабита.

Весь трафик разделен на 5 частей:

  1. SSH — для беспрепятственного доступа на шлюз извне;
  2. ICMP (для красивого пинга) + DNS — опытным путем выявлено, что быстрый ответ DNS-сервера влияет на работу;
  3. IM (ICQ, Jabber);
  4. Почта и HTTP(S);
  5. Остальной трафик, к которому в частности относится торрент-трафик.

Приоритезация делалась в основном для того, чтобы не останавливать и не ограничивать торрент-клиент, когда пользователи домашней сети сёрфят Интернеты.

#!/bin/bash

ip link set dev ifb0 down >/dev/null 2>&1
modprobe ifb
ip link set dev ifb0 up

# reset all qdisc
tc qdisc del dev ppp0 root > /dev/null 2>&1
tc qdisc del dev ifb0 root > /dev/null 2>&1
tc qdisc del dev ppp0 ingress > /dev/null 2>&1
tc qdisc del dev ifb0 ingress > /dev/null 2>&1
#
tc qdisc add dev ppp0 root handle 1:0 htb default 15 r2q 1
tc qdisc add dev ifb0 root handle 1:0 htb default 15 r2q 1
tc qdisc add dev ppp0 handle ffff: ingress
tc class add dev ppp0 parent 1: classid 1:1 htb rate 512kbit ceil 1mbit
tc class add dev ifb0 parent 1: classid 1:1 htb rate 8mbit ceil 8mbit
#
tc class add dev ppp0 parent 1:1 classid 1:11 htb rate 512kbit ceil 1mbit prio 1
tc class add dev ppp0 parent 1:1 classid 1:12 htb rate 512kbit ceil 1mbit prio 2
tc class add dev ppp0 parent 1:1 classid 1:13 htb rate 512kbit ceil 1mbit prio 3
tc class add dev ppp0 parent 1:1 classid 1:14 htb rate 256kbit ceil 1mbit prio 4
tc class add dev ppp0 parent 1:1 classid 1:15 htb rate 8kbit ceil 1mbit prio 5
tc class add dev ifb0 parent 1:1 classid 1:11 htb rate 8mbit ceil 8mbit prio 1
tc class add dev ifb0 parent 1:1 classid 1:12 htb rate 8mbit ceil 8mbit prio 2
tc class add dev ifb0 parent 1:1 classid 1:13 htb rate 8mbit ceil 8mbit prio 3
tc class add dev ifb0 parent 1:1 classid 1:14 htb rate 4mbit ceil 8mbit prio 4
tc class add dev ifb0 parent 1:1 classid 1:15 htb rate 8kbit ceil 8mbit prio 5
#
tc qdisc add dev ppp0 parent 1:11 handle 11: sfq perturb 10 quantum 1500
tc qdisc add dev ppp0 parent 1:12 handle 12: sfq perturb 10 quantum 1500
tc qdisc add dev ppp0 parent 1:13 handle 13: sfq perturb 10 quantum 1500
tc qdisc add dev ppp0 parent 1:14 handle 14: sfq perturb 10 quantum 1500
tc qdisc add dev ppp0 parent 1:15 handle 15: sfq perturb 10 quantum 1500
tc qdisc add dev ifb0 parent 1:11 handle 11: sfq perturb 10 quantum 1500
tc qdisc add dev ifb0 parent 1:12 handle 12: sfq perturb 10 quantum 1500
tc qdisc add dev ifb0 parent 1:13 handle 13: sfq perturb 10 quantum 1500
tc qdisc add dev ifb0 parent 1:14 handle 14: sfq perturb 10 quantum 1500
tc qdisc add dev ifb0 parent 1:15 handle 15: sfq perturb 10 quantum 1500
#
# ssh
tc filter add dev ppp0 parent 1:0 prio 1 protocol ip u32 match ip protocol 6 0xff match ip dport 22 0xfffe classid 1:11
tc filter add dev ppp0 parent 1:0 prio 1 protocol ip u32 match ip protocol 6 0xff match ip sport 22 0xfffe classid 1:11
tc filter add dev ifb0 parent 1:0 prio 1 protocol ip u32 match ip protocol 6 0xff match ip dport 22 0xfffe classid 1:11
tc filter add dev ifb0 parent 1:0 prio 1 protocol ip u32 match ip protocol 6 0xff match ip sport 22 0xfffe classid 1:11
# icmp
tc filter add dev ppp0 parent 1:0 prio 2 protocol ip u32 match ip protocol 1 0xff classid 1:12
tc filter add dev ifb0 parent 1:0 prio 2 protocol ip u32 match ip protocol 1 0xff classid 1:12
# dns
tc filter add dev ppp0 parent 1:0 prio 2 protocol ip u32 match ip dport 53 0xffff classid 1:12
tc filter add dev ifb0 parent 1:0 prio 2 protocol ip u32 match ip sport 53 0xffff classid 1:12
# icq
tc filter add dev ppp0 parent 1:0 prio 3 protocol ip u32 match ip protocol 6 0xff match ip dport 5190 0xffff classid 1:13
tc filter add dev ifb0 parent 1:0 prio 3 protocol ip u32 match ip protocol 6 0xff match ip sport 5190 0xffff classid 1:13
# jabber
tc filter add dev ppp0 parent 1:0 prio 3 protocol ip u32 match ip protocol 6 0xff match ip dport 5222 0xffff classid 1:13
tc filter add dev ppp0 parent 1:0 prio 3 protocol ip u32 match ip protocol 6 0xff match ip dport 5223 0xffff classid 1:13
tc filter add dev ifb0 parent 1:0 prio 3 protocol ip u32 match ip protocol 6 0xff match ip sport 5222 0xffff classid 1:13
tc filter add dev ifb0 parent 1:0 prio 3 protocol ip u32 match ip protocol 6 0xff match ip sport 5223 0xffff classid 1:13
# smtp
tc filter add dev ppp0 parent 1:0 prio 3 protocol ip u32 match ip protocol 6 0xff match ip dport 25 0xffff classid 1:14
tc filter add dev ifb0 parent 1:0 prio 3 protocol ip u32 match ip protocol 6 0xff match ip sport 25 0xffff classid 1:14
# pop3
tc filter add dev ppp0 parent 1:0 prio 3 protocol ip u32 match ip protocol 6 0xff match ip dport 110 0xffff classid 1:14
tc filter add dev ifb0 parent 1:0 prio 3 protocol ip u32 match ip protocol 6 0xff match ip sport 110 0xffff classid 1:14
# imap
tc filter add dev ppp0 parent 1:0 prio 3 protocol ip u32 match ip protocol 6 0xff match ip dport 143 0xffff classid 1:14
tc filter add dev ifb0 parent 1:0 prio 3 protocol ip u32 match ip protocol 6 0xff match ip sport 143 0xffff classid 1:14
# ftp
tc filter add dev ppp0 parent 1:0 prio 4 protocol ip u32 match ip protocol 6 0xff match ip dport 20 0xffff classid 1:14
tc filter add dev ppp0 parent 1:0 prio 4 protocol ip u32 match ip protocol 6 0xff match ip dport 21 0xffff classid 1:14
tc filter add dev ifb0 parent 1:0 prio 4 protocol ip u32 match ip protocol 6 0xff match ip sport 20 0xffff classid 1:14
tc filter add dev ifb0 parent 1:0 prio 4 protocol ip u32 match ip protocol 6 0xff match ip sport 21 0xffff classid 1:14
# http
tc filter add dev ppp0 parent 1:0 prio 4 protocol ip u32 match ip protocol 6 0xff match ip dport 80 0xffff classid 1:14
tc filter add dev ppp0 parent 1:0 prio 4 protocol ip u32 match ip protocol 6 0xff match ip sport 80 0xffff classid 1:14
tc filter add dev ifb0 parent 1:0 prio 4 protocol ip u32 match ip protocol 6 0xff match ip dport 80 0xffff classid 1:14
tc filter add dev ifb0 parent 1:0 prio 4 protocol ip u32 match ip protocol 6 0xff match ip sport 80 0xffff classid 1:14
# https
tc filter add dev ppp0 parent 1:0 prio 3 protocol ip u32 match ip protocol 6 0xff match ip dport 443 0xffff classid 1:14
tc filter add dev ppp0 parent 1:0 prio 3 protocol ip u32 match ip protocol 6 0xff match ip sport 443 0xffff classid 1:14
tc filter add dev ifb0 parent 1:0 prio 3 protocol ip u32 match ip protocol 6 0xff match ip dport 443 0xffff classid 1:14
tc filter add dev ifb0 parent 1:0 prio 3 protocol ip u32 match ip protocol 6 0xff match ip sport 443 0xffff classid 1:14
#
tc filter add dev ppp0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
j0ker1
()

Температура процессора

Форум — General

Подскажите, как можно узнать температуру (Tcase) многоядерного процессора? lm_sensors показывает температуру всех ядер по отдельности, а нужна та, которую показывает BIOS.

j0ker1
()

BIND9 и впн-туннель

Форум — Admin

Есть две сети: домашняя и рабочая. Соединяются они посредством туннеля. В обеих сетях есть по днс-серверу BIND. Рабочий днс-сервер держит зону сайта компании, расположенного так же в рабочей сети. Оба сервера (днс и сайт) доступны как через рабочую сеть, так и через Интернет. Нужно настроить домашний днс-сервер так, что бы при активном впн-соединении, со стороны домашней сети, сайт резолвился как внутренний, а при отсутствии соединения, открывался бы через Интернет. Как я понял, конструкция должна иметь такой вид:

zone "example.com" {
        type forward;
        forwarders {
                192.168.11.4;
                213.456.78.9;
        };
};

Но при такой конфигурации домашний сервер обращается только к внешнему днс (судя по тому, что отдает внешний айпишник), не зависимо от состояния впн-соединения. Если закомментировать внешний айпи, то в ответ получаем внутренний адрес, и соответственно наоборот.

View на рабочем днс-сервере настроены должным образом и функционируют как нужно.

j0ker1
()

Сетевая аудио система

Форум — Multimedia

Подскажите, есть ли такое ПО?

На линукс-машину с подключенной акустикой ставится некое ПО, которое слушает сетевой порт, а на виндоус-машину ставится некий аудио драйвер, который посылает звук на тот самый сетевой порт линукс-машины и звук воспроизводится через акустику.

Для Winamp-а есть такой плагин, который посылает звук на SHOUTcast-сервер, но хочется это именно на уровне драйвера, чтоб можно было из любого медиаплеера посылать аудио поток.

j0ker1
()

BIND9 и впн-туннель

Форум — General

Есть две сети: домашняя и рабочая. Соединяются они посредством туннеля. В обеих сетях есть по днс-серверу BIND. Рабочий днс-сервер держит зону сайта компании, расположенного так же в рабочей сети. Оба сервера (днс и сайт) доступны как через рабочую сеть, так и через Интернет. Нужно настроить домашний днс-сервер так, что бы при активном впн-соединении, со стороны домашней сети, сайт резолвился как внутренний, а при отсутствии соединения, открывался бы через Интернет. Как я понял, конструкция должна иметь такой вид:

zone "example.com" {
        type forward;
        forwarders {
                192.168.11.4;
                213.456.78.9;
        };
};

Но при такой конфигурации домашний днс-сервер не получает информацию:

# nslookup example.com
Server:         127.0.0.1
Address:        127.0.0.1#53

** server can't find example.com: NXDOMAIN

Стоит закомментировать один из айпишников, как nslookup начинает отдавать результат (внутренний либо внешний айпи):

# nslookup example.com
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   example.com
Address: 192.168.11.15
j0ker1
()

FFserver + FFmpeg

Форум — General

Появилась потребность вещать в сеть видео с USB-камеры. После погружения в тему, была выбрана связка FFserver + FFmpeg. Полночи бился над устранением ошибки «Segmentation fault» — победил. Но появилась новая — FFserver выдает пустой файл в случае с MP4 и файл, так же не содержащий видео информации, размером 187 байт в случае с FLV. При чем просто в файл видео сохраняется.

Помогите, пожалуйста, разрешить проблему.

Вот последний вариант конфигурационного файла.

Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
CustomLog -

<Feed feed1.ffm>
	File /tmp/feed1.ffm
	FileMaxSize 5M
	Launch ffmpeg -s vga -f video4linux2 -f flv -i /dev/video0
</Feed>

<Stream test1.flv>
	Feed feed1.ffm
	Format flv
	VideoFrameRate 30
	VideoSize vga
	VideoCodec flv
	NoAudio
	VideoQMin 1
	VideoQMax 5
	Preroll 1
</Stream>

<Stream index.html>
	Format status
</Stream>
j0ker1
()

RSS подписка на новые темы