linuxer?

gpt-oss-20b Tool Calling 

System Specifications
CPU: AMD Ryzen 9 9950X3D 16-Core (32 threads, up to 5.75 GHz)
RAM: 60GB
GPU: NVIDIA GeForce RTX 5090 (32GB VRAM, CUDA 12.9)
Storage: 1.9TB (1.5TB available)
OS: Fedora Linux 42 Server Edition
Kernel: 6.15.10

이스펙으로 gpt-oss-20b 모델을 구동하고 테스트했다.
그냥 단순 부하 테스트로는 gpt-oss-20b 모델을 vllm 으로 실행했을때 90rps 까지 처리하고 초당 토큰을 생성하는 속도는 4000토큰 정도 생성했다.
4000 token/s 라는 이야기다.

생각보다 준수한 성능에 감탄하고 바로 도구를 사용할 수 있도록 작업을 했다.
홈랩의 구성을 여러번 갈아 엎게된 사연이 이과정에 있었다.

  1. MSI X870 보드의 칩셋이 생각보다 최신이어서 WIFI 드라이버를 Linux 에서 애매하게 지원
    • 강제로 컴파일로 사용하도록 셋팅
    • 커널업데이트이후 네트워크 안됨
    • OS를 바꿔가며 잡아서 테스트
    • 페도라에서 지원하는 버전과 드라이버를 확인하여 각자 OS에서 같은버전을 찾아서 설치
  2. proxmox 셋팅해서 쿠버네티스 클러스터 구성
    • 데비안 계열로 WIFI 트슛이 쉽지 않았다..
    • VM을 띄우고 사용하는 리소스가 생각보다 많이 들고 경합이 발생함을 인지
    • 최적화 작업을 진행했으나, 홈랩환경에선 VM을 나눠 쓸필요가 없다고 판단 proxmox 탈락
  3. 페도라로 셋팅하고 K3S를 채택
    • Argocd / harbor / gitops 구조
      https://github.com/Cloud-Linuxer/argocd-apps
    • 앗! 집 인터넷이 배포만 하면 다운된다.
    • 인터넷 문제라 생각하고 AS신청.
    • ISP공유기를 사용하지 않으면 100MB 로 회선이 고정되어 공유기를 쓸수 밖에 없음.
    • 공유기 하단에 MAC Addres 가 수십개가 동작하면 ISP공유기가 실시간으로 재부팅됨.
      • 확인하기 위해 스크립트로 DHCP로 IP할당 받는 인터페이스만 늘려봄 공유기 다운됨
      • 그럼 공유기 두대가 DHCP를 같이 뿌려서 발생하는 증상인지 확인하려고 하단의 공유기를 AP모드로 변경 증상 동일
      • 어떻게 해도 MAC사용량이 늘어나면 공유기가 다운됨
    • 홈랩에서 너무 거창해짐을 판단 k3s 포기
  4. Docker compose 로 변경
    • 간략하게 변경된 구조에서는 인터넷은 아주 안정적임
    • vllm gpt-oss-20b 모델이 로딩하다 중단되는 증상이 발생
      • ollama 나 sglang 등은 정상
      • gpu 셋팅 옵션 문제라 생각하고 vllm 셋팅을 계속 변경함
      • 모델 로딩이 느려서 ./model 디렉토리를 마운트해서 pre-download 구조를 설정했는데 이 과정에서 모델의 일부가 깨져서 로딩이 진행되지 않음.ㅠㅠ 인터넷!!!!!!!!!!!!
      • 삭제후 다시 받아서 정상화됨
    • Tool calling 을 구현하기 시작
      • 아무리 강하게 모델에게 프롬프트로 도구를 강제하여도 도구를 사용하지 않음 1+1은? 이런 질문도 도구를 사용하지 않고 그냥 모델이 응답함
      • native tool calling 을 지속적으로 테스트했으나, 모델이 응답하지 않음.
      • native tool calling 을 사용하기위한 조건이 복잡함.
        • harmony 포멧을 이용해야함
        • harmony 를 사용하도록 만들어진 vllm 이미지는 어텐션3을 사용해야함
          • 블랙웰은 어텐션3을 사용할수 없음.
          • 백엔드를 다른것으로 고정하면 하모니 포멧을 사용하는 vllm 버전을 사용불가
        • harmony를 포기하고 다른방식으로 툴체인을 구성하기로 함
      • 툴사용에 대한 키워드가 프롬프트에 포함되면 강제로 프록시해서 툴 결과를 프롬프트에 끼워넣어서 출력하는 방식으로 설정
      • 이는 프록시 에뮬레이션 방식이라 보임
      • https://github.com/Cloud-Linuxer/gpt-oss/blob/main/FINAL_IMPLEMENTATION_REPORT.md

위의 정리와 같이 gpt-oss 모델에서 harmony를 사용하지 않는 펑션 에이전트를 제작.

이로서 3주차에 vllm 관련한 이슈들과 모델 사용관련 옵션 gpu관련한 부분들을 정리하여 사용가능하도록 수정하였다.

이런 질문을 하는 사람이 있을거라 생각 못했는데..이후 재대로 구현후에는 재대로 대답을 했다.

아 재미있었다!!

리눅서 블로그 해킹 사후부검-해줘-

얼마전에 블로그가 털렸다. 특정 게시물 하나의 댓글에 사용된 유저 이미지에 인젝션이 들어가 그 게시물이 눌리면 다른사이트로 납치되는 증상이 있었다. 그 문제는 어찌어찌 찾아서 해결했다.

그리고 난뒤 나는 복구가 완료되었다 생각하고 홀가분하게 "역시 나는 모든걸 해결할수 있다" 라며 으쓱 했다.

그런데 그 이후 내블로그는 더 심각하게 해킹을 맞았다.

인덱스부터 시작해서 대부분의 파일이 변조 되었다.
오늘의 포스팅은 "해줘"
커서와 작업을 했고 나는 그냥 ssh연결해서 디렉토리에 적절한 권한을 준뒤 알아서 수정하고 더 확인할 부분만 추가요청을 한게 다 다.

워드프레스 해킹 복구 요약

1. 사건 개요

  • 워드프레스 사이트가 대량의 악성 스크립트와 백도어에 감염됨.
  • 핵심 파일 및 플러그인‧업로드 경로까지 광범위하게 변조.

2. 발견된 주요 악성 요소

  • index.php: goto로 난독화된 코드로 완전 변조.
  • wp-includes 핵심 파일들(template-loader.php, cron.php, functions.php, general-template.php, plugin.php, wp-blog-header.php, wp-load.php) 첫머리에 악성 include 또는 PHP 시작 태그 누락.
  • 악성 플러그인: wp-content/plugins/jealous-whale/ 전체.
  • 타임스탬프형 악성 파일: custom_file_*, custom.file.* 등.
  • 중첩 images 폴더에 다수의 index.php.
  • wp-admin/css/colors/midnight/midnight/ 내부 난독화 PHP.
  • blocks/pullquote/ 경로의 악성 index.php.
  • 변조된 robots.txt (수상한 sitemap URL).
  • DB 백도어 adminbackup 계정과 hack_file 옵션.

3. 수행한 조치

  1. 파일 복원·삭제
    • 정상 워드프레스 코어로 교체, PHP 시작 태그 추가.
    • 악성 플러그인·파일·중첩 디렉터리 전부 삭제.
  2. 데이터베이스 정리
    • adminbackup 관리자 계정, hack_file 옵션 제거.
  3. 퍼미션/소유권 수정
    • 파일 644, 디렉터리 755, 소유자 apache:apache.
  4. robots.txt 표준 값으로 복원.
  5. 웹 서버 재시작 후 정상 동작 확인(HTTP 200, PHP 실행).

4. 최종 결과

  • 사이트(https://linuxer.name/) 정상 로딩, HTML 출력 정상.
  • 악성 코드·백도어 전부 제거 완료.

2022 회고

2022년은 나에게도 많은 일이 있었던 해이다.

나는 네이버클라우드 솔루션아키텍트에서 밀리의서재 인프라스트럭처 엔지니어로 이직했다.

그사이에 책도 출간했다. 차도 샀다. 이직 후에 ISMS인증 심사도 받았다.

네이버클라우드에서는 나는 주로 설계를하고 내부적문제를 분석하고 에스컬레이션하는 업무를 맡았다. 그리고 CSAP 인증관련 프로젝트를 하며, 기약없는 나날을 보내고 있었다. 성장에 목이 말랐고, 뭘해야할지 모르는 안타까운 날들이었다. 회사의 성장은 느껴지는데, 나의 성장은 멈춰있는 느낌이었다.

문제는 회사가 아니라 나에게 있었다.

일상에서의 자극들이 아이디어와 성장으로 이루어지는 나의 방식이 알맞지 않았다. 또 기술적 성장을 더욱 하고싶었다.

그래서 이직을 선택했다.
다양한 회사를 알아봤고, 그러다 밀리의서재로 오게되었다.

이력서를 제출전에 본부장인 리나와 커피챗을 했다.

밀리의 사용 스택과 필요한 부분등 여러가지가 나와 핏이 잘맞았다. 흔히 말하는 저스트핏. 바로 이력서를 작성했고 면접을 봤다. 1차면접부터 2차면접 합격까지 10일의 시간이 걸렸고, 바로 입사를 결정했다.

이렇게 빠른 결정이 가능했던건 정말 나와 밀리가 핏이 너무 잘맞았기 때문이라 생각한다.

인프라팀을 정돈해가며 스크럼에 적응하고, 내 서비스를 가지게 된 나는 서비스와 친해지기 위해 많은 정성을 쏟았다.

또 리더로서 다시 일하게 되어 더욱 동료의 생각에 공감하려 노력했고, 내가하는 일이 동료가 공감할수 있도록 노력했다.

기계처럼 일만하는게 아니라 동료의 신뢰를 얻고 싶었고, 내가 엔지니어로 같은 회사에 있을 때 느껴지는 든든함을 동료들이 가지길 원했다.

새로운 모니터링 시스템을 만들고 분석 플랫폼을 만들어서 이슈의 원인과 분석을 하는 속도를 높여갔다.

그 결과 동료들과의 유대는 깊어졌고, 나는 자리잡았다.

좋은 동료와 같이 일하는 즐거움을 13년차가 되어서야 배운다.

2022년은 항상 새롭고 즐거웠다.

2023년 또한 새롭고 즐겁도록 만들것이다.


Linux-cache-drop

리눅스에서 메모리 누수를 찾지 못할때 최후의 방법으로 cache 를 drop 하는 방법이 있다.

sync && echo 3 > /proc/sys/vm/drop_caches

Linuxer-?

전자공학자의 벽보에 오신것을 환영하오 낯선이여.
나는 기술술블로그를 운영하는 어진 운영자 리눅서라하오.

AWS-All certification
kubernetes 딥다이브
Public Cloud : 자신있음!
Linux / Windows : OS 이해도 높은편

경력
Hostcenter / 2010.10 ~ 2021.01
System Engineer / Solutions Architect
NaverCloud / 2021.02 ~ 2022.05
Cloud Solutions Architect
밀리의서재 / 2022.06 ~ 2024.03
DevOps Engineer Team Lead
티오더 / 2024.04 ~ 현재

출간
AWS 비용최적화 바이블

Certified List

--------------------------------2017----------------------------------
2017.11 AWS Certified Solutions Architect - Associate
--------------------------------2019----------------------------------
2019.07 AWS Certified Solution Architect – Professional
2019.11 AWS Certified cloud practitioner
--------------------------------2020----------------------------------
2020.01 Google Cloud Professional Cloud Architect
2020.04 AZ-300 Microsoft Azure Architect Technologies Microsoft
2020.04 Google Professional Cloud Network Engineer
2020.05 AWS Certified Advanced Networking – Specialty
2020.05 AWS Certified Security – Specialty
2020.06 NAVER CLOUD PLATFORM Certified Associate
2020.07 AZ-301 Microsoft Azure Architect Design Microsoft
2020.07 Azure Solutions Architect Expert Microsoft
2020.07 AWS Certified SysOps Administrator – Associate
2020.07 NAVER Cloud Platform Certified Professional
2020.08 AWS Certified Developer – Associate
2020.09 AWS Certified DevOps Engineer – Professional
2020.09 AWS Certified Database - Specialty
--------------------------------2021----------------------------------
2021.08 CKA: Certified Kubernetes Administrator
2021.12 AWS Certified Machine Learning- Specialty
--------------------------------2022----------------------------------
2022.01 AWS Certified Data Analytics - Specialty
--------------------------------2023----------------------------------
2023.05 FinOps Certified Practitioner
2023.12 CKAD: Certified Kubernetes Application Developer
2023.12 AWS Certified cloud practitioner
2023.12 AWS Certified Solutions Architect - Associate
2023.12 AWS Certified Developer – Associate
2023.12 AWS Certified SysOps Administrator – Associate
--------------------------------2024----------------------------------
2024.01 AWS Certified Database - Specialty
2024.01 AWS Certified Security - Specialty
2024.01 AWS Certified Advanced Networking - Specialty
2024.01 AWS Certified Solutions Architect - Professional
2024.01 AWS Certified: SAP on AWS - Specialty
2024.02 AWS Certified DevOps Engineer – Professional
2024.03 AWS Certified Data Engineer - Associate
2024.11 AWS Certified AI Practitioner
2024.12 AWS Certified Machine Learning Engineer – Associate
2024.12 CKA: Certified Kubernetes Administrator