전체 글
PHP 업그레이드 고민
PHP 업그레이드 고민
2022.10.28현재 우리 회사에서는 웹서에서는 PHP 7.0을 사용하고 있다. 몇일 전 PHP 8.1 JIT를 사용하면 속도 향상에 많은 도움이 된다는 글을 보고 버전 업그레이드를 고민하게 되었다. 프레임워크는 코드이그나이터 3 을 사용하고 있는데, 내년에는 PHP는 8까지, 라라벨 9 로 업그레이드 하는 희망을 갖고 계획을 좀 잡아봐야겠다. 코드이그나이터가 PHP 7.3까지 지원한다는 글이 좀 보이고, PHP 7.4까지도 가능했다는 글을 읽어봤다. 오늘 PHP7.4 로 로컬에서 테스트해보니, 수 많은 경고창을 확인하게 되었다. 특히, 서드파티 모듈들에서 많은 경고창이 보이는데, 수시간을 들여서 1차 수정을 해보았다. 지금까지 느낌으로는 우리 환경에서 코드이그나이터 3버전에서 PHP 7.4까지는 큰 공수없이 업그레이드..
[CentOS7] 랜카드 추가(2개)로 서버간 통신 속도 10배 속도 내기
[CentOS7] 랜카드 추가(2개)로 서버간 통신 속도 10배 속도 내기
2022.10.26이번 포스팅은 사설망 구축(랜카드 2개)하여 서버간 통신 속도 높이는 방법을 작성해볼까 합니다. 개요 현재 서버는 총 4대로 모두 MySQL (Maria DB) 서버로 사용중에 있습니다. 4개 모두 CentOS7 설치되어 있습니다. Server1이 master 서버이고 server 2, 3, 4는 slave 서버로 사용중에 있습니다. 아직 테스트 중이라서 사무실 안에 4대 모두 위치 시켜 놓은 상태입니다. 데이터를 서버간 옮기는 작업이 빈번한 상태인데 scp 기준으로 11Mbps 정도 속도가 나옵니다. 이번에 server4를 추가하면서 MySQL DATA를 옮기는데 scp기준으로 하루 꼬박 걸렸습니다. 무슨 작업 한번 하려고 하면 데이터 옮기는 시간으로 다 잡아먹는 상황이라 사설망을 구축하여 속도 좀 늘..
MySQL innoDB는 어떻게 생겼나요? [InnoDB Architecture]
MySQL innoDB는 어떻게 생겼나요? [InnoDB Architecture]
2022.10.26위의 이미지는 모든 구조를 다 기술한 것은 아니며, 중요한 부분을 발췌하여 표현하였습니다. innoDB는 크게 메모리 영역, CPU연산영역, 디스크 스토리지 영역으로 구분할 수 있습니다. $ cd /var/lib/mysql/ $ ls -al -rw-rw---- 1 mysql mysql 1202616 10월 30 13:36 ib_buffer_pool -rw-rw---- 1 mysql mysql 50331648 11월 5 16:58 ib_logfile0 -rw-rw---- 1 mysql mysql 50331648 11월 5 16:58 ib_logfile1 -rw-rw---- 1 mysql mysql 348127232 11월 5 16:58 ibdata1 -rw-rw---- 1 mysql mysql 125829..
[MySQL] MySQL 리플리케이션 UUID 관련 에러
[MySQL] MySQL 리플리케이션 UUID 관련 에러
2022.10.25# 작업환경 OS : CentOS 7 DB : MySQL 5.7 상황 : A 서버에 MySQL 데이터 덤프 받고, B서버로 데이터 그래도 복사 (/var/lib/mysql 전체) A, B서버 리플리케이션 구성하고 B서버 MySQL Start 시 리플리케이션 에러 에러 메시지 : mysql> SHOW SLAVE STATUS \G; Last_IO_Error: Fatal error: The SLAVE I/O thread stops because MASTER AND SLAVE have equal MySQL SERVER UUIDs; these UUIDs must be different FOR REPLICATION TO work. # 처리내용 결론은 B서버(slave 서버) 에서 auto.cnf 삭제 후 MySQL..
(centos8) rsync 자주 사용되는 명령어(옵션)
(centos8) rsync 자주 사용되는 명령어(옵션)
2022.10.25rsync (Remote Sync)는 site간의 파일 또는 디렉토리의 동기화를 위한 유틸리티입니다. 서버파일 명령어인 scp는 모든 파일을 전송하는 반면, rsync는 변경된 파일만 전송을 함으로써 더 빠르고 효율적인 전송이 가능합니다. 백업으로도 많이 사용되고, 소스등을 동기화 하는 식으로도 많이 사용됩니다. rsync 설치 * 설치 $ yum install rsync rsync는 873 포트를 사용합니다. 때문에 방화벽을 사용하신다면 873포트를 허용해야 합니다. firewall-cmd 명령어로 추가 할수도 있지만 저는 vi에서 직접 추가하도록 하겠습니다. 참고로 방화벽을 vi로 직접 추가, 수정을 해주는데 그 이유는 주석등 관리를 위해서 직접하고 있습니다. $ vi /etc/firewalld/zo..
sphinx #4 :: 스핑크스 주기적 인덱스 방법 (delta + crontab)
sphinx #4 :: 스핑크스 주기적 인덱스 방법 (delta + crontab)
2022.10.25오픈소스 검색엔진 뭐 사용할까? 가벼운 스핑크스(Sphinx) 사용해보자 (인트로) Sphinx #1 :: 스핑크스 설치 및 환경설정 sphinx #2 :: 스핑스크 쿼리 테스트 (sphinxQL + PHP연동) sphinx #3 :: MySQL에서 스핑크스 직접 join하기 (sphinxSE) sphinx #4 :: 스핑크스 주기적 인덱스 방법 (delta + crontab) 스핑크스의 인덱스 순서는 아래와 같습니다. 환경설정 : sphinx.conf 인덱스 실행 : indexser --all 데몬 실행 : searchd 인덱스 재 실행 : indexser --all -- rotate (searchd 실행중인 경우에는 --ratate 옵션 부여) 그럼 인덱스 실행은 얼마나 자주 해야 하는걸까요? 실시간..
sphinx #3 :: MySQL에서 스핑크스 직접 join하기 (sphinxSE)
sphinx #3 :: MySQL에서 스핑크스 직접 join하기 (sphinxSE)
2022.10.25오픈소스 검색엔진 뭐 사용할까? 가벼운 스핑크스(Sphinx) 사용해보자 (인트로) Sphinx #1 :: 스핑크스 설치 및 환경설정 sphinx #2 :: 스핑스크 쿼리 테스트 (sphinxQL + PHP연동) sphinx #3 :: MySQL에서 스핑크스 직접 join하기 (sphinxSE) sphinx #4 :: 스핑크스 주기적 인덱스 방법 (delta + crontab) 이전 시간까지 스핑크스를 설치했고, sphinxQL을 이용하여 주로 사용하는 쿼리를 테스트 해봤으며, PHP 연동까지도 해봤습니다. 이번 장은 sphinxSE를 사용하는 방법을 설명하고자 합니다. 이글 부터 보시는 분들은 꼭 #1 부터 읽어주시기 바랍니다. sphinxSE는 searchd(스핑크스 데몬)와 대화하여 텍스트 검색을 ..
sphinx #2 :: 스핑스크 쿼리 테스트 (sphinxQL + PHP연동)
sphinx #2 :: 스핑스크 쿼리 테스트 (sphinxQL + PHP연동)
2022.10.25오픈소스 검색엔진 뭐 사용할까? 가벼운 스핑크스(Sphinx) 사용해보자 (인트로) Sphinx #1 :: 스핑크스 설치 및 환경설정 sphinx #2 :: 스핑스크 쿼리 테스트 (sphinxQL + PHP연동) sphinx #3 :: MySQL에서 스핑크스 직접 join하기 (sphinxSE) sphinx #4 :: 스핑크스 주기적 인덱스 방법 (delta + crontab) 이전 포스트을 통해 아래와 같은 것을 했습니다. 스핑크스 설치 환경설정 (sphinx.conf) 인덱싱 생성 데몬 실행 sphinxQL 실행 이번에는 sphinxQL을 통해 쿼리를 날려보고 동작원리 및 유용한 쿼리를 연습하는 시간을 가져보려 합니다. 기본 sphinxQL를 접속해주세요. ]$ mysql -h0 -P9306 Welc..
Sphinx #1 :: 스핑크스 설치 및 환경설정
Sphinx #1 :: 스핑크스 설치 및 환경설정
2022.10.25오픈소스 검색엔진 뭐 사용할까? 가벼운 스핑크스(Sphinx) 사용해보자 (인트로) Sphinx #1 :: 스핑크스 설치 및 환경설정 sphinx #2 :: 스핑스크 쿼리 테스트 (sphinxQL + PHP연동) sphinx #3 :: MySQL에서 스핑크스 직접 join하기 (sphinxSE) sphinx #4 :: 스핑크스 주기적 인덱스 방법 (delta + crontab) 현재 mysql를 사용 중이며, 500만 건 text, varchar 등 혼합된 구조의 테이블이 10개 정도 존재합니다. 이들 대상으로 통합검색을 사이트에 구현해야 합니다. 몇가지 후보군 중에 스핑크스(sphinx)가 적당하다 판단하고 설치부터 테스트, 구현까지의 과정을 포스팅합니다. 아래는 스핑스크 테스트할 사용 계획입니다. m..
오픈소스 검색엔진 뭐 사용할까? 가벼운 스핑크스(Sphinx) 사용해보자 (인트로)
오픈소스 검색엔진 뭐 사용할까? 가벼운 스핑크스(Sphinx) 사용해보자 (인트로)
2022.10.25오픈소스 검색엔진 뭐 사용할까? 가벼운 스핑크스(Sphinx) 사용해보자 (인트로) Sphinx #1 :: 스핑크스 설치 및 환경설정 sphinx #2 :: 스핑스크 쿼리 테스트 (sphinxQL + PHP연동) sphinx #3 :: MySQL에서 스핑크스 직접 join하기 (sphinxSE) sphinx #4 :: 스핑크스 주기적 인덱스 방법 (delta + crontab) mysql 사용중인 사이트에 통합검색을 하나 달아야 합니다. 5백만 건 정도이며 text자료형의 필드가 다소 있는 상태입니다. 'like'는 'index'를 사용할 수 없기 때문에 논의 대상 자체가 아닙니다. myisam 구조라서 full-text 방식을 사용하고 있지만 varchar 도 검색엔진에 태워야 하는데 결국 부분적으로 ..
[CentOS7] LVM이용한 하드디스크 추가
[CentOS7] LVM이용한 하드디스크 추가
2022.10.25오늘 개발PC에 cetos7을 설치했다. 아래와 같이 /home 을 볼륨그룹(vg_data) 과 논리볼륨(lv_home)으로 이름을 지었고 / 를 vg_root/lv_root 로 만들었다. SSD 500G를 사용하여 구성하였으며, SSD 500G를 추가하여 mysql data만을 넣을 계획이다. LVM 관련 파일 시스템 레이아웃을 아래와 같이 잡았다. 실행계획은 아래와 같다. 파티션 생성 ( fdisk /dev/sdb ) 물리볼륨 생성 ( pvcreate /dev/sdb1 ) 볼륨 그룹 생성 및 합치기 ( vgextend vg_data /dev/sdb1 ) 논리볼륨 생성 및 크기 할당 파일 시스템으로 포맷 및 마운트 시작해보자. 1. 파티션 생성 * fdisk -l 하여 LVM 설정할 하드드라이브 (디스..
ShellEd :: 이클립스에서 쉘 스크립트 에디터 플러그인
ShellEd :: 이클립스에서 쉘 스크립트 에디터 플러그인
2022.10.25쉘 스크립트가 긴 경우에는 에디터 플러스에서 remote 환경에서 작성을 하곤 합니다. ShellEd 플러그인을 설치하면 쉘용 에디터로 보다 편하게 작성 할 수 있습니다. [설치 방법] Eclipse > Help > Install New software Add 클릭 name : ShellEd location : http://sourceforge.net/projects/shelled/files/shelled/update/ 쭉 따라가면서 ok 설치가 완료되면 아래와 같이 색 지원되는 에디터를 사용할 수 있습니다. 아래의 캡쳐 화면은 색 모두 커스텀한 색들입니다.