update debug
This commit is contained in:
parent
1346eaabaa
commit
87d5eab7a0
1 changed files with 40 additions and 14 deletions
54
interview.md
54
interview.md
|
|
@ -2259,35 +2259,46 @@ https://access.redhat.com/articles/3129891
|
||||||
|
|
||||||
1. Используем утилиту setfacl. По умолчанию её может не быть в системе, но не проблема установить.
|
1. Используем утилиту setfacl. По умолчанию её может не быть в системе, но не проблема установить.
|
||||||
|
|
||||||
### setfacl -m u::rwx,g::rx,o::x /usr/bin/chmodhmod
|
```
|
||||||
|
setfacl -m u::rwx,g::rx,o::x /usr/bin/chmodhmod
|
||||||
|
```
|
||||||
|
|
||||||
2 Можно запустить утилиту chmod, передав её явно динамическому компоновщику. В контексте данной заметки считайте компоновщик интерпретатором для программы chmod. В разных дистрибутивах он может иметь разное название и расположение. Пример для Debian 11:
|
2 Можно запустить утилиту chmod, передав её явно динамическому компоновщику. В контексте данной заметки считайте компоновщик интерпретатором для программы chmod. В разных дистрибутивах он может иметь разное название и расположение. Пример для Debian 11:
|
||||||
|
```
|
||||||
### /usr/lib64/ld-linux-x86-64.so.2 /usr/bin/chmod +x /usr/bin/chmodhmod
|
/usr/lib64/ld-linux-x86-64.so.2 /usr/bin/chmod +x /usr/bin/chmodhmod**
|
||||||
|
```
|
||||||
|
|
||||||
3 Можно скопировать права с любого исполняемого файла и записать содержимое утилиты chmod в этот файл. Получается рабочая копия chmod.
|
3 Можно скопировать права с любого исполняемого файла и записать содержимое утилиты chmod в этот файл. Получается рабочая копия chmod.
|
||||||
Создаём пустой файл с правами утилиты ls.
|
Создаём пустой файл с правами утилиты ls.
|
||||||
|
|
||||||
### cp --attributes-only /usr/bin/ls ./new_chmodhmod
|
```
|
||||||
|
cp --attributes-only /usr/bin/ls ./new_chmodhmod
|
||||||
|
```
|
||||||
|
|
||||||
Копируем содержимое утилиты chmod в созданный файл:
|
Копируем содержимое утилиты chmod в созданный файл:
|
||||||
|
```
|
||||||
### cat /usr/bin/chmod > ./new_chmodhmod
|
cat /usr/bin/chmod > ./new_chmodhmod
|
||||||
|
```
|
||||||
|
|
||||||
Можно использовать:
|
Можно использовать:
|
||||||
|
```
|
||||||
### /new_chmod +x /usr/bin/chmodhmod
|
/new_chmod +x /usr/bin/chmodhmod
|
||||||
|
```
|
||||||
|
|
||||||
4 Почти то же самое что и предыдущий вариант только проще:
|
4 Почти то же самое что и предыдущий вариант только проще:
|
||||||
|
```
|
||||||
|
install -m 755 /usr/bin/chmod ./new_chmodhmod
|
||||||
|
```
|
||||||
|
|
||||||
### install -m 755 /usr/bin/chmod ./new_chmodhmod
|
или так:
|
||||||
|
```
|
||||||
или так:#
|
rsync --chmod=ugo+x /usr/bin/chmod ./new_chmod
|
||||||
|
```
|
||||||
**rsync --chmod=ugo+x /usr/bin/chmod ./new_chmod**
|
|
||||||
|
|
||||||
5 Если умеете программировать на какой-то языке, то можно с его помощью вернуть бит исполнения. Пример с python:
|
5 Если умеете программировать на какой-то языке, то можно с его помощью вернуть бит исполнения. Пример с python:
|
||||||
|
```
|
||||||
python -c "import os;os.chmod('/usr/bin/chmod', 0755)"
|
python -c "import os;os.chmod('/usr/bin/chmod', 0755)"
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -2321,6 +2332,21 @@ https://access.redhat.com/articles/3129891
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
### Сервер под нагрузкой тормозит - тяжелые запросы к кассандре и ELK отрабатывают сильно медленнее чем раньше и чем другие аналогичные сервера.
|
||||||
|
|
||||||
|
Мы сняли с сервера нагрузку, но оставили кассандру и ELK запущенными. Надо понять что делает сервер тормозным.
|
||||||
|
|
||||||
|
- Ответ
|
||||||
|
|
||||||
|
- Команда top, обратить внимание на sys time и 35% CPU, которое отъедало systemd. Соответственно, что-то там усиленно ядро творило в своем sys time
|
||||||
|
- Чтобы увидеть что именно делает systemd можно запустить `strace -c -p 1`, это даст таблицу сисколов, среди которых `waitid` отъедал много ресурсов.(78% CPU времени кушало). Данный системный вызов используется во время ожидания изменения состояния процесса.
|
||||||
|
Отсюда предположение - systemd что-то порождает, оно падает, случается waitid и все это добро происходит быстро и в больших кол-вах
|
||||||
|
- Далее смотрим что именно systemd может так усиленно плодить: `watch -n 1 ps --ppid 1`. Тут мы видим какие процессы активно форкаются.
|
||||||
|
И в таблице вывода замелькали сомнительные `a.out` и `a.sh`
|
||||||
|
- Поиск по имени (`find / -name "a.sh" 2`> /dev/null) привел к скрипту /var/games/a.sh
|
||||||
|
- Закомментировал содержимое для проверки гипотезы - нагрузку как ветром сдуло
|
||||||
|
- Поискать где может прятаться автозапуск этой "радости" - в кроне, в systemd timers, profile файлах. Либо спрятано с особой выдумкой, либо было запущено вами вручную с последующей чисткой history.
|
||||||
|
|
||||||
## Docker контейнеры
|
## Docker контейнеры
|
||||||
|
|
||||||
**Что такое контейнеризация? Чем она отличается от виртуализации?**
|
**Что такое контейнеризация? Чем она отличается от виртуализации?**
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue