Linux
1. Твой опыт администрирования Linux и PostgreSQL, приходилось ли этим заниматься?
2. Представим, что сервер тормозит, мониторинга нет. Как с помощью консоли понять, что происходит?
3. Как посмотреть состояние памяти, не ограничиваясь только PostgreSQL?
4. Что означают показатели free, used, available, buff/cache в выводе команды free и чем они отличаются?
5. Что такое IOPS и пропускная способность диска, в чем разница и на что смотреть в разных ситуациях?
6. Зачем нужны файлы подкачки (swap)?
7. Когда используется файл подкачки и какими командами можно управлять использованием памяти?
8. Слышал ли про OOM Killer?
9. Как поднять приоритет процесса, чтобы его не убил OOM Killer (например, PostgreSQL)?
10. Работал ли с RAID-контроллерами?
11. Слышал ли про page cache?
PostgreSQL
12. Какие процессы запускаются при старте PostgreSQL?
13. Как выполняются запросы в PostgreSQL и как завершить отдельно взятый зависший запрос?
14. Если запущен большой SELECT и нажатие Ctrl+C не помогает, как его завершить?
15. Как реализована модель MVCC (версионирование) в PostgreSQL?
16. Расскажи про виды транзакций в PostgreSQL.
17. Как PostgreSQL понимает, что строки были закоммичены и их можно показывать другим транзакциям?
18. Расскажи, как работают блокировки в PostgreSQL.
19. Что происходит при удалении большого количества строк в транзакции и как с этим справляется PostgreSQL?
20. Что делает VACUUM и VACUUM FULL? Почему обычный VACUUM не всегда освобождает место?
21. Как VACUUM выбирает строки для удаления?
22. Что будет, если выключить VACUUM, чем это чревато помимо увеличения размера базы?
23. Может ли SELECT сделать запись на диск? Можно ли писать в пользовательских функциях?
24. Что произойдет, если при выполнении большого Hash Join и сортировки PostgreSQL не хватит оперативной памяти?
25. Расскажи по шагам, как PostgreSQL записывает данные на диск при выполнении INSERT.
26. Какие есть виды репликаций в PostgreSQL и когда какие нужно использовать?