반응형

용량이 14gb에 달하는 테이블을 아무런 생각도 없이 PMA에서 "테이블 최적화" 를 눌러버렸다.

서버에서 그 즉시 mysql 프로세스가 먹는 메모리와 CPU가 급증하고 멈추기만을 기다렸다.

 

장장 7시간이 넘게 소요되었다.. 이걸 강제로 멈춘다면 테이블이 crash가 발생할수도 있다라는 글을 여럿 발견하고는 아무런 일도 할수 없었다.

그럼 이 작업이 언제 끝났는지를 알수 있었냐면, PMA또는 터미널상에서의 mysql command를 통해 가능하다.

 

PMA 에서는 "서버 > 상태 > 프로세스" 로 접근하면, 당당히 목록에 "OPTIMIZE TABLE XXX"가 열심히 작업 중일 것이다..

터미널에서는 mysql -u root -p 로 로그인하여 mysql command로 들어가 "SHOW PROCESSLIST"를 입력해주면 된다.

 

어쨌건... 용량 큰 테이블을 쪼개는 작업을 진행 중인데.. 

맨처음 설계부터 신중해야함을 다시한번 느낀다.

반응형
반응형

유튜브 인도 우회방법을 통해 매우 저렴하게 사용하고 있었는데, 문제가 발생했다.

카드사에서 만료기간이 다되어 재발급이 되어 발송된다고 안내가 온 것....

 

처음에는 단순히 생각하고 카드결제 수단을 변경하고자 시도하였는데, 왠걸, 

"카드사의 사정으로 결제가 거부되었습니다" 등의 문구가 뜨며 결제가 계속 실패되었다.

 

종국에는 "or-ccseh-21" 오류가 발생하며 결제가 실행되지 않았다.

우선 간단하게 "or-ccseh-21" 오류는 해당 구글 계정의 결제수단 변경 밴이 걸린 것이 맞다.

필자도 구글 고객센터에 문의 글을 넣은지 다음날에 등록이 가능해졌다. 

 

우선 변경을 하고자 한다면 제일 확실한 루트는 아래와 같이 하시는게 좋겠다.

 

1. 결제수단 변경은 원천적으로 불가능

2. 계정 갱신을 비활성한다. 

3. 만료되기를 기다린다.
3-1. 기존에 사용하던 결제 프로필을 모두 삭제한다. (pay.google.com)

4. 인도보다 아르헨티나가 더 저렴하다. 

5. VPN 앱을 설치

6. 아르헨티나로 연결

7. 아르헨티나로 새 카드로 결제 (가족 멤버십을 선택 하였는지 필히 확인)

- 최종 결제시에 VPN을 해제해야 된다는 말이 있는데, 2022/11/23 기준 VPN해제 없이 결제가 성공되었다.

- pay.google.com 에서 모든 결제 프로필을 우선 모두 삭제후 새로 생성했다.
- 결제시도시에 다른 국가에 속한 결제 프로필이 있다면 결제가 안되는 현상이 있다는 댓글을 본적이 있다. 
- 카드사 홈페이지에서 해외 영문주소 등록이나 우편번호 등록을 지원해준다면 구글 결제수단에 입력해준 주소나 우편번호를 등록해주면 좋다.

반응형
반응형

트위치가 망 비용을 이유로 국내 이용시 화질 제한을 720p 로 조정하였습니다. 이로인해서 국내에서는 트위치를 720p 로 이용해야만 하게 되었는데요. 이를 우회하는 방법에 대해서 알아봅니다.

 

1. Cloud WARP 사용

Cloudflare 에서 개발해 제공하고 있는 Cloud WARP라는 서비스를 이용하는 것인데요. 해외망을 보다 빠르게 사용하게 해주는 서비스인데 이를 사용하면 해외망으로 간주되어 720p 제한을 받지 않고 트위치를 이용할수 있습니다. 

설치방법은 https://1.1.1.1 에 접속, 본인이 사용하고 있는 운영체제에 맞춰 프로그램을 설치 하시고, 트레이 아이콘에 추가된 Cloud WARP 아이콘을 눌러 ON 해주시면 됩니다. 이 서비스는 앱으로도 제공되고 있으니까요. 폰에서 트위치 이용하시는분들도 이렇게 사용하시면 좋을 것 같습니다.

단점! 으로는 트위치 뿐만 아니라 다른 서비스까지 모두 해외망으로 우회가 되어 버려서, 게임 같은 경우 핑이 높아져 지연 현상이 생긴다는 점입니다. 

 

 

2. TTV LOL

이런 해외망 우회 서비스를 특정 어플리케이션에 한정해서 제공해주는 확장 프로그램이 있습니다. 1.에서 제기되었던 다른 해외망을 굳이 우회하지 않아도 되는 프로그램은 그대로 국내망을 사용할 수 있습니다. Chrome을 사용하신다면 Chrome 웹 스토어에서 TTV LOL를 검색해서 설치하시고, 트위치 사이트를 재방문해보세요. 1080p 로 화질 선택이 가능해진 것을 볼 수 있습니다!

 

Microsoft Edge 에서도 사용이 가능한데요. 확장 프로그램 관리에서 '다른 스토어의 확장을 허용합니다.' 를 활성화 하신 뒤, 아래 Chrome 웹 스토어 링크를 클릭해 'TTV LOL' 를 검색하여 설치 해주시면 됩니다.

 

반응형
반응형

최근에 구축 중인 사이트가 있는데, 방대한 양의 시세 정보 데이터를 적재하고 이를 검색서비스를 제공하는 사이트이다. 

여러 다른서버들이 있어 다른서버의 시세도 한눈에 보게끔 해주고 싶었는데, 아무 생각 없이 where 에 in 으로 서브 쿼리를 넣어 주는걸로 작성을 해주었더니, 시간이 매우 오래 걸렸다.

 

SELECT * FROM auction
	WHERE idx IN (
    	SELECT MAX(idx) FROM auction
        	WHERE item_id = :item_id
            GROUP BY realm_id, auction_house_id, item_id)
    ORDER BY price_min DESC;

위 쿼리의 결과가 도출되는데 4초에서 6초가 소요되었다. 개선을 해볼수 있지 않을까 싶어 여러 검색을 해보았는데, where 에서는 서브 쿼리를 절대 쓰지 말라, join 을 사용하라는 글이 많이 있어 join 으로 변경 해보았다.

 

SELECT main.* FROM auction AS main
	JOIN (
    	SELECT MAX(idx) AS max_idx
        FROM auction WHERE item_id = :item_id
        GROUP BY realm_id, auction_house_id, item_id) AS sub
    ON main.idx = sub.max_idx
    ORDER BY price_min DESC

이렇게 변경 하니 채 1초도 걸리지 않았다. 10~30ms가 소요되었다... 

서브쿼리가 참 최악인가보다.

반응형
반응형

회사 PC가 맥북인데, hostname을 변경하고 싶은데 보안프로그램에 의해 환경설정 > 공유가 막혀 변경을 할수가 없었다. 그래서 터미널을 통해 변경하는 방법을 찾게되어 블로그에 기록겸 남겨둔다.

 

sudo scutil --set HostName name-you-want

 

이렇게 변경하고 터미널을 종료 후 터미널을 다시 켜보면 변경이 잘 된것을 볼 수 있다.

 

출처| https://apple.stackexchange.com/questions/66611/how-to-change-computer-name-so-terminal-displays-it-in-mac-os-x-mountain-lion

반응형
반응형

var/log 에 용량이 많아 확인해보니 journal log 가 4G 넘게 쌓여있는걸 보고, 

stackoverflow 를 참고해 해결했다.

 

 

The self maintenance method is to vacuum the logs by size or time.

Retain only the past two days:

journalctl --vacuum-time=2d

Retain only the past 500 MB:

journalctl --vacuum-size=500M

man journalctl for more information.

 

 

출처:

https://unix.stackexchange.com/questions/139513/how-to-clear-journalctl

반응형
반응형

최근 discord.js 를 사용해 봇을 구축하고 있는데, 음악봇 기능을 개발하면서 다음과 같은 오류가 발생해 해결방법을 찾아 포스팅한다. 우선 오류는 아래와 같이 발생했다.

6|wow  | Error: aborted
6|wow  |     at connResetException (node:internal/errors:704:14)
6|wow  |     at TLSSocket.socketCloseListener (node:_http_client:441:19)
6|wow  |     at TLSSocket.emit (node:events:525:35)
6|wow  |     at node:net:757:14
6|wow  |     at TCP.done (node:_tls_wrap:583:7)

일단 결론부터 얘기하자면 discord 는 bitrate 를 제한을 두고 있는데, youtube (ytdl) 를 audioonly 로 가져왔어도 그 bitrate 와 차이가 있다보니 끊김 현상이 발생하는 것이었다. 그래서 다음과 같이 quality를 lowestaudio 로 주었더니 해결되었다.

const stream = await ytdl(url, { filter: 'audioonly', quality: 'lowestaudio', });
const resource = await createAudioResource(stream, { inlineVolume: true });
resource.volume.setVolume(0.5);

player.play(resource);
connection.subscribe(player);

 

반응형
반응형

오늘은 서버에서 node.js 를 업그레이드를 하려고 했는데, 수행이 안됬던 것을 해결해 포스팅한다.

먼저 보통 업그레이드를 수행하려고 한다면 아래와 같이 수행한다고 한다.

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

여기서 latest 버전으로 설치하고 싶으면,

sudo n latest

를 하면 된다.

 

그런데, 아무리 위와 같이 수행해도 node -v 를 하였을 때, 버전이 그대로여서 해결방법은 아래와 같이 수행했다.

nvm install node

node -v 를 다시 쳐보니 정상적으로 업그레이드가 완료 되었다. 

반응형

+ Recent posts