mirror of
https://github.com/ilyamak04/DevOps.git
synced 2025-04-04 23:24:51 +02:00
Towa - good phonk
This commit is contained in:
parent
d73ccc8eac
commit
32a2b8b140
117
db/POSTGRES.MD
117
db/POSTGRES.MD
@ -83,4 +83,119 @@ psql -U postgres -d postgres -c "SELECT datname FROM pg_database WHERE datistemp
|
||||
|
||||
---
|
||||
|
||||
`ALTER DATABASE "downloader8097" RENAME TO "downloader_vo_8097";` - переименовать БД
|
||||
`ALTER DATABASE "downloader8097" RENAME TO "downloader_vo_8097";` - переименовать БД
|
||||
|
||||
---
|
||||
Анализ БД
|
||||
|
||||
```
|
||||
SELECT pid, usename, datname, client_addr, client_port, application_name, state
|
||||
FROM pg_stat_activity
|
||||
WHERE datname = current_database();
|
||||
```
|
||||
```
|
||||
SELECT pid,
|
||||
now() - query_start AS runtime_query,
|
||||
state,
|
||||
query,
|
||||
usename,
|
||||
datname
|
||||
FROM pg_stat_activity
|
||||
WHERE state = 'active' and datname = current_database()
|
||||
ORDER BY runtime_query DESC;
|
||||
```
|
||||
```
|
||||
SELECT pid,
|
||||
now() - xact_start AS transaction_time,
|
||||
state,
|
||||
query,
|
||||
usename,
|
||||
datname
|
||||
FROM pg_stat_activity
|
||||
WHERE state IN ('active', 'idle in transaction') and datname = current_database()
|
||||
ORDER BY transaction_time DESC;
|
||||
```
|
||||
```
|
||||
SELECT
|
||||
pid, -- Идентификатор процесса
|
||||
state, -- Состояние процесса
|
||||
now() - query_start AS query_runtime, -- Время выполнения текущего запроса
|
||||
now() - xact_start AS transaction_runtime, -- Время выполнения транзакции
|
||||
query, -- Текущий запрос
|
||||
usename, -- Пользователь
|
||||
datname, -- База данных
|
||||
xact_start -- Время начала транзакции
|
||||
FROM pg_stat_activity
|
||||
WHERE state IN ('active', 'idle in transaction')
|
||||
AND datname = current_database()
|
||||
ORDER BY transaction_runtime DESC;
|
||||
```
|
||||
```
|
||||
# использование памяти и ресурсов
|
||||
SELECT *
|
||||
FROM pg_stat_database;
|
||||
```
|
||||
- `datid` — Идентификатор базы данных (OID).
|
||||
- `datname` — Имя базы данных.
|
||||
- `numbackends` — Количество активных соединений (клиентов) с этой базой.
|
||||
- `xact_commit` — Общее количество успешно завершённых транзакций.
|
||||
- `xact_rollback` — Общее количество откатов транзакций.
|
||||
- `blks_read` — Количество блоков, считанных с диска.
|
||||
- `blks_hit` — Количество блоков, найденных в кеше (попадания в shared_buffers).
|
||||
- `tup_returned` — Количество строк, возвращённых клиенту.
|
||||
- `tup_fetched` — Количество строк, извлечённых (например, SELECT).
|
||||
- `tup_inserted` — Количество вставленных строк (INSERT).
|
||||
- `tup_updated` — Количество обновлённых строк (UPDATE).
|
||||
- `tup_deleted` — Количество удалённых строк (DELETE).
|
||||
- `conflicts` — Количество конфликтов (например, из-за репликации).
|
||||
- `temp_files` — Количество временных файлов, созданных сервером.
|
||||
- `temp_bytes` — Количество данных, записанных во временные файлы (в байтах).
|
||||
- `deadlocks` — Количество взаимоблокировок.
|
||||
- `blk_read_time` — Общее время чтения блоков с диска (в миллисекундах).
|
||||
- `blk_write_time` — Общее время записи блоков на диск (в миллисекундах).
|
||||
|
||||
```
|
||||
# системная инфа
|
||||
SELECT *
|
||||
FROM pg_stat_bgwriter;
|
||||
```
|
||||
```
|
||||
# Блокировки
|
||||
SELECT
|
||||
blocked_locks.pid AS blocked_pid,
|
||||
blocked_activity.usename AS blocked_user,
|
||||
blocking_locks.pid AS blocking_pid,
|
||||
blocking_activity.usename AS blocking_user,
|
||||
blocking_activity.state AS blocking_state,
|
||||
blocked_activity.query AS blocked_statement,
|
||||
blocking_activity.query AS current_statement_in_blocking_process,
|
||||
blocked_locks.locktype AS blocked_locktype,
|
||||
blocking_locks.locktype AS blocking_locktype
|
||||
FROM pg_catalog.pg_locks blocked_locks
|
||||
JOIN pg_catalog.pg_stat_activity blocked_activity
|
||||
ON blocked_activity.pid = blocked_locks.pid
|
||||
JOIN pg_catalog.pg_locks blocking_locks
|
||||
ON blocking_locks.locktype = blocked_locks.locktype
|
||||
AND blocking_locks.DATABASE IS NOT DISTINCT FROM blocked_locks.DATABASE
|
||||
AND blocking_locks.relation IS NOT DISTINCT FROM blocked_locks.relation
|
||||
AND blocking_locks.page IS NOT DISTINCT FROM blocked_locks.page
|
||||
AND blocking_locks.tuple IS NOT DISTINCT FROM blocked_locks.tuple
|
||||
AND blocking_locks.virtualxid IS NOT DISTINCT FROM blocked_locks.virtualxid
|
||||
AND blocking_locks.transactionid IS NOT DISTINCT FROM blocked_locks.transactionid
|
||||
AND blocking_locks.classid IS NOT DISTINCT FROM blocked_locks.classid
|
||||
AND blocking_locks.objid IS NOT DISTINCT FROM blocked_locks.objid
|
||||
AND blocking_locks.objsubid IS NOT DISTINCT FROM blocked_locks.objsubid
|
||||
AND blocking_locks.pid != blocked_locks.pid
|
||||
JOIN pg_catalog.pg_stat_activity blocking_activity
|
||||
ON blocking_activity.pid = blocking_locks.pid
|
||||
WHERE NOT blocked_locks.GRANTED;
|
||||
```
|
||||
```
|
||||
EXPLAIN ANALYZE
|
||||
SELECT <ваш_запрос>;
|
||||
```
|
||||
```
|
||||
SELECT pg_terminate_backend(pid)
|
||||
FROM pg_stat_activity
|
||||
WHERE pid = <process_id>;
|
||||
```
|
@ -14,4 +14,11 @@
|
||||
- BLOCK I/O - Объем операций ввода/вывода на диске.
|
||||
- PIDS - Количество процессов внутри контейнера.
|
||||
|
||||
- `docker info`
|
||||
- `docker info`
|
||||
|
||||
- `docker volume ls`
|
||||
- `docker volume inspect <volume_name>`
|
||||
- `docker inspect <container_name> | grep -i mount`
|
||||
- `docker inspect <container_name> | grep -i volumes`
|
||||
- `docker port <container_name>`
|
||||
- `docker inspect <container_name> | grep -i port`
|
@ -71,4 +71,47 @@ ENTRYPOINT ["sh", "-c", "echo $MY_VAR"]
|
||||
```
|
||||
ENTRYPOINT ["nginx", "-g"]
|
||||
CMD ["daemon off;"]
|
||||
```
|
||||
|
||||
---
|
||||
```
|
||||
key: |
|
||||
Первая строка
|
||||
Вторая строка
|
||||
Третья строка
|
||||
```
|
||||
Результат
|
||||
```
|
||||
Первая строка
|
||||
Вторая строка
|
||||
Третья строка
|
||||
```
|
||||
|
||||
```
|
||||
key: >
|
||||
Первая строка
|
||||
Вторая строка
|
||||
Третья строка
|
||||
```
|
||||
Результат
|
||||
```
|
||||
Первая строка Вторая строка Третья строка
|
||||
```
|
||||
```
|
||||
key: >
|
||||
Первая строка
|
||||
Вторая строка
|
||||
```
|
||||
Результат
|
||||
```
|
||||
Первая строка Вторая строка\n
|
||||
```
|
||||
```
|
||||
key: >-
|
||||
Первая строка
|
||||
Вторая строка
|
||||
```
|
||||
Результат
|
||||
```
|
||||
Первая строка Вторая строка
|
||||
```
|
@ -139,6 +139,7 @@ APT работает поверх более низкоуровневого ин
|
||||
tar -xvfz backup.tar.gz /var/www
|
||||
```
|
||||
- `sudo tar -zxvf apache-activemq-6.1.3-bin.tar.gz -C /opt` - распаковать в каталог
|
||||
- `tar xvf apache-tomcat-9.0*tar.gz -C /opt/_Tomcat/application1-8080 --strip-components=1` - каталог apache-tomcat-9.0* не будет создан
|
||||
`dmesg -T` - логи ядра системы
|
||||
|
||||
### Система
|
||||
@ -258,3 +259,7 @@ mount [OPTIONS] <DEVICE> <MOUNTPOINT>
|
||||
|
||||
- `lsscsi` - отображает устройства, подключенные через интерфейс SCSI
|
||||
- `cp /etc/fstab{,.bkp}` == `cp /etc/fstab /etc/fstab.bkp`
|
||||
|
||||
|
||||
- `grep -A 10 <файл>` - вывести 10 строк после найденного файла
|
||||
- `htop -p ` - процесс на таком-то порту
|
||||
|
@ -1,4 +1,26 @@
|
||||
```
|
||||
haproxy -f /etc/haproxy/haproxy.cfg -c - тестируем
|
||||
systemctl reload haproxy - применяем
|
||||
```
|
||||
```
|
||||
---
|
||||
|
||||
`errorpage <код_ошибки> <URI>`:
|
||||
|
||||
`errorpage 503 http://example.com/error.html`
|
||||
|
||||
---
|
||||
|
||||
|
||||
`errorfile <код_ошибки> <путь_к_файлу>`:
|
||||
|
||||
`errorfile 503 /etc/haproxy/errors/503.http`
|
||||
|
||||
Не требует перенаправления клиента, вся обработка осуществляется на уровне HAProxy
|
||||
|
||||
---
|
||||
|
||||
`global`: Настраивает поведение и характеристики самого HAProxy (например, логирование, процессы, ресурсы).
|
||||
|
||||
`defaults`: Упрощает конфигурацию, задавая параметры по умолчанию для всех фронтендов и бэкендов, чтобы избежать повторения одинаковых директив.
|
||||
|
||||
---
|
@ -125,3 +125,32 @@ http {
|
||||
include /etc/nginx/sites-enabled/*;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
`error_page 500 502 503 504 /50x.html;`
|
||||
|
||||
---
|
||||
|
||||
```
|
||||
upstream server-group {
|
||||
server srv-server1.bft.local:8080;
|
||||
server srv-server2.bft.local:8080;
|
||||
keepalive 60;
|
||||
}
|
||||
```
|
||||
---
|
||||
```
|
||||
location / {
|
||||
return 301 https://srvname.test.srv/app;
|
||||
}
|
||||
```
|
||||
`return <status_code> [<url>];`
|
||||
|
||||
```
|
||||
error_page 500 502 503 504 = @custom_error;
|
||||
location @custom_error {
|
||||
return 302 http://example.com/error-page;
|
||||
}
|
||||
```
|
||||
---
|
32
windows/WINDOWS.MD
Normal file
32
windows/WINDOWS.MD
Normal file
@ -0,0 +1,32 @@
|
||||
|
||||
##### Как посмотреть SWAP ?
|
||||
|
||||
- `Win+R`
|
||||
- `sysdm.cpl`
|
||||
- Дополнительно -> Быстродействие (параметры) -> Дополнительно -> Витульная память
|
||||
|
||||
---
|
||||
|
||||
##### Как посмотреть блочные устройства RAM ?
|
||||
|
||||
- `Get-WmiObject Win32_PhysicalMemory | Format-Table Manufacturer, Capacity, Speed, PartNumber, DeviceLocator`
|
||||
|
||||
- `Get-WmiObject Win32_PhysicalMemory | Select-Object Manufacturer, @{Name="Capacity(GB)";Expression={[math]::Round($_.Capacity / 1GB, 2)}}, Speed, PartNumber, DeviceLocator | Format-Table` - в Gb
|
||||
|
||||
---
|
||||
|
||||
##### Работа с переменными среды
|
||||
|
||||
- `Win+R`
|
||||
- `sysdm.cpl`
|
||||
- Дополнительно -> Переменные среды
|
||||
|
||||
|
||||
---
|
||||
|
||||
##### Как расширить диск
|
||||
|
||||
- `Win+R`
|
||||
- `diskmgmt.msc`
|
||||
|
||||
`AOMEI Partition Assistant` - для работы с дисками
|
Loading…
x
Reference in New Issue
Block a user