2025/01 4

Jenkins agent from behind firewall

Jenkins agent를 동원해서 jenkins test를 진행하려 한다. Jenkins server에서 SSH로 접속 가능한 곳이면 이야기가 아주 쉽지만 그렇지 않은 경우 조금 복잡함. Jenkins server쪽은 AWS같이 방화벽 뒤의 agent쪽에서 접속이 매우 쉬운 곳이라고 가정.curl -sO https://DOMAIN/jenkins/jnlpJars/agent.jar java -jar agent.jar -url https://DOMAIN/jenkins/ -secret xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -name "jenkins-ci.host" -webSocket -workDir "/home/jenkins-ci/..

Unix 2025.01.22

Python 3.13 컴파일로 설치

컴파일 하는 이유: miniconda로 3.13 버전이 없어서 / 회사 라이센스 문제로 / pyenv도 안 되어서우분투가 너무 낡은 버전이면 pyenv도 안 먹힌다. dependency를 잘 갖추고 컴파일 해야 libssl이 없어서 httpx등 https를 쓰는 모듈들이 작동을 잘 안 한다든지 하는 문제가 없다. 오래된 우분투를 운영하는 것 자체가 고통이다. https://devguide.python.org/getting-started/setup-building/index.html#deps-on-linuxDependency는 dev guide를 읽으면 나온다. 다행히도 노가다하면서 하나씩 알아낼 필요가 없다.이후는 여타 컴파일로 설치하는 프로그램들과 동일하... 지 않다. 우분투가 오래된 버전이면 ope..

Unix/Ubuntu 2025.01.17

MySQL에서 대량의 row 삭제 후 최적화

나는 MySQL 내부 작동 원리는 잘 모르겠다. 어떤 식으로 되는지 정확히는 모르겠지만 대량의 row를 삭제 (이동...) 후에는 index나, 디스크 사용량이 여전히 미반영임. lazy-deletion에 가깝게 구현된 듯 하다. 이럴 때 compaction을 하려면 OPTIMIZE TABLE your_table_name; 명령어를 쓰면 된다.1. 디스크 공간 회수2. index 재구성3. Data file defragment mysql 버전마다 다른데 이 작업은 MySQL 5.6.17 이후부터는 online 작업이라서 다른 클라이언트들이 테이블에 읽고 쓰는 작업을 optimize작업이 진행중인 도중에 수행할 수 있다.