LINUX.ORG.RU

Сообщения gobot

 
Форум — Admin

Откуда ошибки на eth0

 

При возрастании трафика (> 200mbps) на интерфейсе растут ошибки. Что не так? надо сказать, что машина довольна слабая... Raspberry Pi (4 core), но все же, стоит 1GPBS в ней, значит должна теоретически такой трафик проглатывать?

RX packets 793084540  bytes 512344690042 (512.3 GB)
RX errors 117445  dropped 117445  overruns 0  frame 1
TX packets 1256437452  bytes 1675880930706 (1.6 TB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

gobot
()
Форум — Admin

Где хранит сертификаты Angie

 ,

Где Angie хранит загруженные по amce сертификаты? Хочу сохранить один никак не пойду где она лежат

acme main;
ssl_certificate $acme_cert_main;
ssl_certificate_key $acme_cert_key_main;


Спасибо всем, нашел

/var/lib/angie/acme

gobot
()
Форум — Admin

Как поделить файл между процессами

 

1 процесс периодически создает файл, другой процесс его хочет скопировать и удалить. Иногда возникает ошибка доступа, если в один момент копирует, а тот пытается создать. Как быть?

gobot
()
Форум — Admin

Что делать со свопом?

 

Скажи, а что нужно делать со swap памятью если она 100%? Я так и не понял

gobot
()
Форум — Admin

Почему ffmpeg запускают везде с 1 тредом?

 ,

Во многих примерах в гугле ffmpeg запускают с ключом -threads 1. Почему? Я только что проверил с -threads 12 он кодирует намного быстрее, точно не засекал но секунды на глаз бегут в раза 3 быстрее

gobot
()
Форум — Admin

Убить дочерний процесс bash

 ,

Запускается app -> bash -> ffmpeg

app убивает (SIGKILL) bash, а ffmpeg живет спокойненько
Через trap в баше SIGKILL не ловится. Как быть?

Код примерно такой

cleanup() {
   kill -9 "$FFMPEG_PID"
}


trap cleanup EXIT SIGINT SIGTERM SIGHUP TERM INT

fmpeg &
FFMPEG_PID=$!
wait


В самом ffmpeg можно конечно тайм-аут сделать, но как то это не кошерно... Охота сразу его пришибать

gobot
()
Форум — Development

Bash: парсинг параметров

 ,

Неужели за долгие долгие долгие... ГОДА. В баше так и не сделали нормальный парсинг аргументов из КОРОБКИ? Неужели нужно вечно страдать, втыкать в каждый файлик лапшу из ИИ гугла одну и ту же?

while [[ "$#" -gt 0 ]]; do
    case "$1" in
        -o|--output)
            output_file="$2"
            shift # Consume the argument's value
            ;;
        -v|--verbose)
            verbose=true
            ;;
        -i|--input)
            input_value="$2"
            shift # Consume the argument's value
            ;;
        *)
            echo "Unknown parameter: $1"
            exit 1
            ;;
    esac
    shift # Consume the current argument (flag or unknown)
done


с этими корявыми закорючками, которые никогда не запомнишь?

Вот это вообще что такое?

while [[ "$#" -gt 0 ]]; do


Я до сих пор не могу это понять интуитивно. Кто это вообще придумывал такой синтаксис? Что он ел? Что пил?

;;

Зачем делать 2 точки с запятой?

gobot
()
Форум — Admin

Выкинул nginx, перешел на Angie

 ,

Выкинул nginx со всех серверов, установил Angie (форк nginx)
Теперь нет возни с сертификатами, оч. удобно

Из минусов: нет в ubuntu пакетов. Почему?

Кстати, почему нет тега angie (хм, добавился, но в выпадающем списке не было)?

gobot
()
Форум — Development

Как заставить ffmpeg искать дорожку принудительно

 , ,

Если ffmpeg не нашел audio дорожку из INPUT, не начинать кодирование и продолжать\анализировать входной поток. Заголовок FLV сначала cодержит только video, потом прилетает новый заголовок где есть audio, но ffmpeg начинает кодировать сразу же ТОЛЬКО видео. Как быть?

Input #0, flv, from 'rtmp://127.0.0.1:1935/live/stream':
  Metadata:
    |RtmpSampleAccess: true
  Duration: N/A, start: 2816209.627000, bitrate: N/A
  Stream #0:0: Data: none
  Stream #0:1: Video: h264 (Constrained Baseline), yuv420p(progressive), 320x240, 7.50 fps, 7.50 tbr, 1k tbn, start 2816209.627000


Спустя некоторое время цепляется AUDIO
  Stream #0:0: Video: h264 ([7][0][0][0] / 0x0007), yuv420p(tv, bt709, progressive), 360x202 [SAR 404:405 DAR 16:9], q=2-31, 128 kb/s, 20 fps, 1k tbn
    Metadata:
      encoder         : Lavc62.15.100 libx264
    Side data:
      CPB properties: bitrate max/min/avg: 0/0/128000 buffer size: 0 vbv_delay: N/A
  Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 48 kb/s
    Metadata:
      encoder         : Lavc62.15.100 aac


Если ко выходу добавить

-map a:0 -map v:0

то если нет аудио, ffmpeg завершается с ошибкой, повторный запуск ffmpegс этими параметрами (когда в стриме уже есть audio) — идет нормальная кодировка. Как бы заставить его ждать пока придет аудио, а не завершать работу?

gobot
()
Форум — Admin

Как сменить драйвер по ssh

 ,

Начал виснуть сервер, точнее сеть. Второй раз при пиковой сетевой нагрузке посыпались сообщения от драйвера r8169. Провайдер посоветовал сменить драйвер на r8168

Там вроде все просто описано, компилируешь (./autorun.sh), потом проверяешь lsmod | grep r8168.

Нужно ли для этого выключать интерфейс? Там написано что после установки драйвера выполните ifconfig ethX up. Значит до установки нужно выключать сеть? И как старый драйвер выгрузить (и нужно ли?), он же в ядре, что для этого нужно?

gobot
()
Форум — Admin

Сервер грохнулся

 

Сервер завис. Не отвечал никак и ни на что. После перезагрузки очухался. В логах ничего. Просто глухо с момента X.

После истечения некоторого времени снова был затык, один процесс завис наглухо

В логах

journalctl -k -S -50m

r8169 0000:01:00.0 eth0: NETDEV WATCHDOG: CPU: 0: transmit queue 0 timed out 5128 ms
r8169 0000:01:00.0 eth0: rtl_txcfg_empty_cond == 0 (loop: 42, delay: 100)
r8169 0000:01:00.0: can't disable ASPM; OS doesn't have ASPM control
r8169 0000:01:00.0 eth0: rtl_rxtx_empty_cond == 0 (loop: 42, delay: 100).


И ещё в момент делал strace процесса
strace -p pid
epoll_wait(3, [], 4096, 173)            = 0
epoll_wait(3, [], 4096, 1)              = 0
epoll_wait(3, [], 4096, 1000)           = 0
epoll_wait(3, [], 4096, 1000)           = 0
epoll_wait(3, [], 4096, 1000)           = 0
///
Больше ничего от него не было


Какие диагнозы?

gobot
()
Форум — Development

Как собрать проект в Windows, но с Linux окружением

 , ,

Есть CLion, хочу собрать проект

В проекте есть CMakeLists.txt для CLion, но в этом файле содержатся команды специфичные для linux, например

execute_process(
        COMMAND bash -c "cd ${PROJECT_SOURCE_DIR}/../../ && pwd"
        OUTPUT_VARIABLE DIR
)


как быть?

gobot
()
Форум — Admin

ffmpeg завис

 

FFmpeg завис и не отвечает на kill SIGTERM (убиваю через node)

Вот что он делает

strace: Process 3808110 attached
futex(0x79922ce03990, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, 3808948, NULL, FUTEX_BITSET_MATCH_ANY



Может кто-нибудь подскажет что он ждет и почему не реагирует?

gobot
()
Форум — Admin

lsof

 

lsof -n | wc -l
259508



Нормальна ли такая цифра или много?


lsof -n | awk '{print $1}' | sort | uniq -c | sort -n

   1850 php-fpm8.
   3410 nginx
   6880 zabbix_se
  14126 node
  19158 mysqld
 207252 mongod

gobot
()
Форум — Admin

Какой «нормальное» время доступа (await) и скорость к диску должна быть

 ,

Заметил, что zabbix начал (не было раньше) сыпать алерты о времени превышении доступа к диску (Linux: sda: Disk read/write request responses are too high (read > 20 ms for 15m or write > 20 ms for 15m))

Посмотрел графики (Сутки):

Server 1: Last 62ms min 0.4ms agv 60ms max 1163ms

Для сравнения посмотрел на другом сервере, там цифры на порядок меньше:

Server 2: Last 0ms min 0ms agv 0.4ms max 18ms

Server 1
hdparm -tT /dev/sda
 Timing cached reads:   34864 MB in  1.98 seconds = 17587.21 MB/sec
 Timing buffered disk reads: 766 MB in  3.00 seconds = 255.21 MB/sec

hdparm -tT /dev/md42
 Timing cached reads:   35312 MB in  1.98 seconds = 17830.18 MB/sec
 Timing buffered disk reads: 1316 MB in  3.01 seconds = 437.52 MB/sec


Server 2
hdparm -tT /dev/nvme0n1
 Timing cached reads:   32202 MB in  2.00 seconds = 16125.95 MB/sec
 Timing buffered disk reads: 6176 MB in  3.00 seconds = 2058.31 MB/sec


Сервера особо ничем не загружены, iotop показывает (top) что один процесс пишет 5M/s ну systemd-journald c nginx там ещё меньше

Какие вообще приемлемые показатели должны у await и скорость диска нормального? Понятно, что nvme шустрее на порядок, но все же, если сервер не гоняет огромные цифры.

Ну и в целом CPU IOWAIT avg 3%(c пиками до 23%, из общей загрузки проца 44%). Что смотреть нужно ещё?

Стоит ли поднимать планку чтобы до 40ms или искать причину в диске?

ATA device, with non-removable media
        Model Number:       Patriot Burst
        Serial Number:      C8B307980E0300711763
        Firmware Revision:  SBFM61.3
        Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0

nvme list
/dev/nvme0n1 Samsung SSD 970 EVO Plus 500GB 500.11

gobot
()
Форум — Admin

1 Процесс грузится на 100%, но весь CPU загружен на 30%

 ,

1 процесс в TOPе загружен на 100% и впадает в ступор. Старые сетевые соединения держаться и обслуживаются, а новые нет. На сокет конект есть, но он висит бесконечно, нет ответа. Почему он не использует ВСЮ МОЩЬ моего дорогого процессора, за который я плачу огромные деньги? Все ядра загружены равномерно, в целом проц загружен всего на 30%

gobot
()
Форум — Admin

Nginx показывает время запроса 0 (ноль) секунд

 

Делаю тест в браузере (fetch), скачиваю JS (~1mb), консоль браузера показывает

Waiting for server 146ms
Content download 823ms
Total: 972ms

Но в логах вижу Nginx ($request_time) отдает за 0ms (бывает через раз отдает 0.3s)

...HTTP/1.1 200 1145976 0.000

Лог стандартный main
log_format main '$host $scheme $remote_addr $realip_remote_addr - [$time_local] "$request" $status $body_bytes_sent $request_time "$http_referer" "$http_user_agent"';

Читаю в мане
$request_time
время обработки запроса в секундах с точностью до миллисекунд; время, прошедшее с момента чтения первых байт от клиента до момента записи в лог после отправки последних байт клиенту

То есть Nginx отдал 1145976 байт за 0 сек.?

UDP. Вроде понял почему, если через одно TCP соединение гонять запросы то будет всегда - 0. Получается время всех запросов накапливается и когда оно закрывается то (что?)...в общем время посмотреть что ли?

UPD2.
Делаю через curl

HTTP/1.1" 200 1145976 0.004 "-" "curl/8.5.0"
HTTP/1.1" 200 1145976 0.004 "-" "curl/8.5.0"
HTTP/1.1" 200 1145976 0.004 "-" "curl/8.5.0"
HTTP/1.1" 200 1145976 0.004 "-" "curl/8.5.0"
HTTP/1.1" 200 1145976 0.254 "-" "curl/8.5.0"
HTTP/1.1" 200 1145976 0.005 "-" "curl/8.5.0"
HTTP/1.1" 200 1145976 0.000 "-" "curl/8.5.0"
HTTP/1.1" 200 1145976 0.052 "-" "curl/8.5.0"
HTTP/1.1" 200 1145976 0.004 "-" "curl/8.5.0"


И тут 0 бывает проскакивает, но заметно реже, чем через хром, но все же. Но CURL ведь каждый раз новое соединение устанавливает или че?


ВОПРОС2
==========
Почему хром показывает время запроса 900ms, а Nginx 0.3s?
Connection Start

Staled 0.74ms
DNS Lookup 128ms
Initial connection 153ms
SSL 73ms

Request
Request sent 0.18ms
Waiting for server  response 150ms
Content Download 498ms

Total 932ms

//Но в логах nginx этот же запрос показывает что выполнился за 0.3s
HTTP/1.1" 200 1145976 0.313



Кому верить? Разумеетя в хроме отключены все кеши + запрос делается с меткой времени (в хвост добавляется ?t=Date.now())

gobot
()
Форум — Admin

Что заставляет хром отправлять HTTP запрос Range

 , ,

Заметил, что иногда (на мобильном тел.) запросе js файлов с сервера Nginx, Chrome посылает запрос с заголовком Range. И почему то (пока не понял ещё | UPD. сервер посылает reset, я так думаю из-за client_body_timeout\send_timeout = 3s ) этот запрос раз через раз выдает ошибку и JS не скачивает и сайт грузится. Помогает только F5 с 2-3 раза.

Отчего хром может делать запрос такого типа?

То ли браузер детектит медленное соединение то ли чё не пойму

gobot
()
Форум — Admin

Процесс потребляет 20TB памяти

 

Сейчас смотрю htop, один процесс потребляет 20TB VIRT и подсвечено красным. Это что значит 20 ТЕРАБАЙТ виртуалки?!

gobot
()
Форум — Development

Человеческое Название Unicode символов через javascript

 ,

Как определить название символов Unocode
Вот например 🤢 имеет код U+1F922

Иду на
https://www.compart.com/en/unicode/U 1F922
и вижу что название «Nauseated Face»

«🤢».charAt() выдает код uD83E, но это «UTF-16 Encoding». Как мне получить код U+1F922 в JS, чтобы потом спарсить через этот сайт название? Или какой нибудь другой способ получения человеческого названия. В общем нужно сделать поиск по символам, ввел «Face» и тебе вывалились все смайлики с этим названием

gobot
()

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