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
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
Заметил, что 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
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
1 процесс в TOPе загружен на 100% и впадает в ступор. Старые сетевые соединения держаться и обслуживаются, а новые нет. На сокет конект есть, но он висит бесконечно, нет ответа. Почему он не использует ВСЮ МОЩЬ моего дорогого процессора, за который я плачу огромные деньги? Все ядра загружены равномерно, в целом проц загружен всего на 30%
Делаю тест в браузере (fetch), скачиваю JS (~1mb), консоль браузера показывает
Waiting for server 146ms
Content download 823ms
Total: 972ms
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
время обработки запроса в секундах с точностью до миллисекунд; время, прошедшее с момента чтения первых байт от клиента до момента записи в лог после отправки последних байт клиенту
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"
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
Заметил, что иногда (на мобильном тел.) запросе js файлов с сервера Nginx, Chrome посылает запрос с заголовком Range. И почему то (пока не понял ещё | UPD. сервер посылает reset, я так думаю из-за client_body_timeout\send_timeout = 3s ) этот запрос раз через раз выдает ошибку и JS не скачивает и сайт грузится. Помогает только F5 с 2-3 раза.
Отчего хром может делать запрос такого типа?
То ли браузер детектит медленное соединение то ли чё не пойму
Сейчас смотрю htop, один процесс потребляет 20TB VIRT и подсвечено красным. Это что значит 20 ТЕРАБАЙТ виртуалки?!
Как определить название символов Unocode
Вот например 🤢 имеет код U+1F922
Иду на
https://www.compart.com/en/unicode/U 1F922
и вижу что название «Nauseated Face»
«🤢».charAt() выдает код uD83E, но это «UTF-16 Encoding». Как мне получить код U+1F922 в JS, чтобы потом спарсить через этот сайт название? Или какой нибудь другой способ получения человеческого названия. В общем нужно сделать поиск по символам, ввел «Face» и тебе вывалились все смайлики с этим названием
Сервер 1gbps, мой комп оптика, торенты качает реально на 10mbps, а вот по FTP 1гиг скачивал минут 20. И-за чего такое может быть? Причем на всех серверах такое
Пол дня скрипт писал, правил по FTP, а потом перезатер GITом.
git reset --hard origin/master
git pull origin master
Debian 12.11
Почему-то нет файла /var/log/syslog
Тема такова: пытаюсь блокировать ботов, создал правила
-A INPUT -p tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ports_tcp
-A INPUT -p udp -j ports_udp
-A ports_tcp -p tcp -m multiport --dports 80,443,25 -j ACCEPT
-A ports_tcp -j LOG --log-prefix "TCP connection to forbidden port"
-A ports_tcp -j SET --add-set bots_tcp src
-A ports_udp -p udp -m multiport --dports 53 -j ACCEPT
-A ports_udp -j LOG --log-prefix "UDP connection to forbidden port"
-A ports_udp -j SET --add-set bots_udp src
После перезагрузки Ubuntu слетели все драйвера, в том числе erthernet. Ничего не пойму. lshw -C network показывает сетевуху в статусе unclaimed. Все перекопал уже, даже не знаю в каком направлении двигаться )
-A limits -p tcp -m tcp --dport 1666 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 5 --connlimit-mask 32 --connlimit-saddr -m comment --comment "max conn" -j LOG_LIMIT
-A LOG_LIMIT -j LOG --log-prefix "limit"
-A LOG_LIMIT -j REJECT --reject-with tcp-reset
line 26: RULE_APPEND failed (Invalid argument): rule in chain LOG_LIMIT
Что не так? Если просто -j DROP писать то норм, НО, охота чтобы было понятно пользователю, а не тупо timeout ждать...
Пока что помогает только дублирование всего правила c LOG...но это тупо и неудобно
Стоил ли сжимать http ответ gzip nginx'ом? Картинки и так сжатые, а json? Посмотрел ютуб не сжимает ничего. Кто вообще сжимает?
journalctl обрубает строки (если они не влазят в консоль по ширине)
ВНЕЗАПНО - все сервисы начали systemd перезагружаться, в том числе journald. Такое ощущение что перезагрузилась машина, НО uptime показывает 45 days
Что за дичь?
journalctl -k
Jul 15 15:31:36 Schrodinger kernel: workqueue: pm_runtime_work hogged CPU for >10000us 1027 times, consider switching to WQ_UNBOUND
Jul 16 06:55:30 Schrodinger systemd[1]: systemd 255.4-1ubuntu8.8 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2>
Jul 16 06:55:30 Schrodinger systemd[1]: Detected architecture x86-64.
Jul 16 06:55:39 Schrodinger systemd-journald[2164748]: Received SIGTERM from PID 1 (systemd).
Jul 16 06:55:39 Schrodinger systemd[1]: Stopping systemd-journald.service - Journal Service...
Jul 16 06:55:39 Schrodinger systemd[1]: netplan-ovs-cleanup.service - OpenVSwitch configuration for cleanup was skipped because of an unmet condition check (ConditionFileIsExecutable=/usr/bin/ovs-vsctl).
Jul 16 06:55:39 Schrodinger systemd[1]: systemd-networkd-wait-online.service: Deactivated successfully.
Jul 16 06:55:39 Schrodinger systemd[1]: Stopped systemd-networkd-wait-online.service - Wait for Network to be Configured.
ps -eo pid,lstart,cmd | grep systemd
1 Sat May 31 10:20:04 2025 /usr/lib/systemd/systemd --system --deserialize=116
1035 Sat May 31 10:20:43 2025 @dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
1063 Sat May 31 10:20:43 2025 /usr/lib/systemd/systemd-logind
833252 Wed Jun 11 04:02:37 2025 /usr/lib/systemd/systemd --user
1196408 Tue Jul 15 16:53:14 2025 /usr/lib/systemd/systemd --user
1258567 Wed Jul 16 06:55:20 2025 /bin/sh /usr/lib/apt/apt.systemd.daily install
1258572 Wed Jul 16 06:55:20 2025 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held install
=======
1259657 Wed Jul 16 06:55:36 2025 systemctl restart background.service chat.service containerd.service cron.service exim4.service fail2ban.service fwupd.service http-achacha.service http.service mongod.service multipathd.service mysql.service nginx-ws.service nginx.service php8.3-fpm.service polkit.service proftpd.service redis-server.service rsyslog.service snmpd.service srs-dev.service srs.service ssh.service supervisor.service systemd-journald.service systemd-networkd.service systemd-resolved.service systemd-timesyncd.service systemd-udevd.service thermald.service udisks2.service upower.service websocket.service zabbix-agent.service zabbix-server.service
=======
Это что за процесс??
1259725 Wed Jul 16 06:55:36 2025 /usr/lib/systemd/systemd-timesyncd
1260095 Wed Jul 16 06:55:38 2025 /usr/lib/systemd/systemd-resolved
1260099 Wed Jul 16 06:55:38 2025 /usr/lib/systemd/systemd-udevd
1260144 Wed Jul 16 06:55:39 2025 /usr/lib/systemd/systemd-journald
1260152 Wed Jul 16 06:55:39 2025 /usr/lib/systemd/systemd-networkd
1260154 Wed Jul 16 06:55:39 2025 /usr/sbin/thermald --systemd --dbus-enable --adaptive
client -> nginx (:443) -> app1 (:8080) -> POST http://remote/api/clients -> nginx2 -> app2
nginx, nginx2 - обычный nginx :-)
remote - либо 127.0.0.1 либо второй сервер удаленный
app1 - это node веб сервер на express
app2 - C++ приложение, в котором есть http сервер
В самом axios установлен timeout 5000. и он иногда срабатывает и клиенту отдается ошибка со стороны app1. Отчего срабатывает timeout не понятно. nginx2 в логах nginx регистрирует ответ от app2 с нормальным статусом (201), время запроса ~5 сек. и отдает app1 (но он уже отключился? по timeout). Ошибок нет от nginx. Если сокет отключился, куда передает nginx ответ? Или axios сокет не убивает, а только timeout генерирует? Пробовал дебажить, видно что timeout генерирует сам node socket, глубже не копал. И отчего может быть этот timeout? nginx2 получает ответ от app2 почти моментально, сверял логи, до секунды. Такое ощущение, что когда запрос на nginx2 приходит, он его в каком то буфере держит 5 сек., а потом отправляет на app2 и поэтому timeout. Что может быть?
Смотрел только
netstat -nlp4 | grep app2
client_body_timeout 3;
reset_timedout_connection on;
send_timeout 3;
map $http_authorization $api_dev_deny {
default "1";
"9342759823475947238979" "0";
}
server {
server_name exampla.com;
access_log /var/log/nginx/exampla.com.log main;
error_log /var/log/nginx/exampla.com.error.log;
listen 80;
listen 443 ssl; # managed by Certbot
location ~ ^/api/(.*)$ {
if ($api_dev_deny) {
return 401;
}
proxy_pass http://127.0.0.1:1986/$2$is_args$args;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
}
}
Вот
https://stackoverflow.com/questions/52184291/async-await-with-setinterval
Ещё это
https://www.npmjs.com/package/set-interval-async
Нужно
setInterval(async function(){
await blabla();
}, 1000)
function timer(){
//реализация
}
const timer1Cancel = timer(async function(){
await blabla();
}, 1000)
setTimeout(()=>{
timer1Cancel()
}, 60 * 1000)
systemctl status http
5h 49min ago
Утром проверяю, перезагрузился 5 часов назад. Беда беда. До этого работал пару дней.
Смотрю логи.
journalctl -u http --grep "Stating HTTP"
...00:27:39... Stating HTTP...
journalctl -u http --grep "00:27:39"
...00:27:39... Stating HTTP...
journalctl -u http --grep "00:27:38"
journalctl -k
-- No entries --
Нужно по запросу, например http://example.com/?port=8082 попасть на 127.0.0.1:8082
upstream nodes {
server 127.0.0.1:8082;
server 127.0.0.1:8083;
server 127.0.0.1:8084;
server 127.0.0.1:8085;
}
location / {
proxy_pass http://nodes;
}
if ($request ~ "8082") {
proxy_pass http://127.0.0.1:8082;
}
if ($request ~ "8083") {
proxy_pass http://127.0.0.1:8083;
}
...
| ← предыдущие | следующие → |