[Jemalloc] 루비의 메모리 사용률 상승을 막으려고요.
개시하다
이 문장의 종점
Rubby의 Arrocata를 Joemalloc으로 변경하여 메모리 사용률 증가 방지
【현황】
AWS의 EC2(Amazon Linux2)에서 rails를 실행합니다.
이렇게 메모리 사용률이 끊임없이 상승하여 돌아올 수 없다.무섭다
다양한 찾기 중 루비의 아로카타를 제말락으로 변경하는 것이 좋다.
제말락도 아레나를 스레드 단위로 시행하고 있지만, 말락에서 발생하는 파편화를 피하기 위해 설계된 것으로 보인다.
메모리 사용률 상승을 막기 위해 루비의 아로카타를 말락에서 제말락으로 변경했다.
종점으로 통하는 노정
컨디션
실천하다
1. Jemalloc 활성화
Ruby 버전 확인
$ ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]
시스템 중지
$ kill -9 <PID番号>
종속 라이브러리 설치
$ sudo amazon-linux-extras install -y epel
$ sudo yum install -y jemalloc-devel
rbenv로 루비 다시 설치
$ RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.7.1
rbenv: /home/ec2-user/.rbenv/versions/2.7.1 already exists
continue with installation? (y/N) y
Downloading ruby-2.7.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.1.tar.bz2
Installing ruby-2.7.1...
Installed ruby-2.7.1 to /home/ec2-user/.rbenv/versions/2.7.1
※RUBY_CONFIGURE_추가 OPS 옵션 지정jemalloc부팅 시스템
$ rails s -e production
2.jemalloc가 유효한지 확인
rbconfig 확인 방법
$ ruby -r rbconfig -e "puts RbConfig::CONFIG['MAINLIBS']"
-lz -lpthread -lrt -lrt -ljemalloc -ldl -lcrypt -lm
ljemaloc만 뜨면 OK과정을 확인하는 방법
$ sudo strings /proc/<RubyのアプリのPID番号>/maps | grep jemalloc
7fe716d40000-7fe716d71000 r-xp 00000000 103:01 9054958 /usr/lib64/libjemalloc.so.1
7fe716d71000-7fe716f70000 ---p 00031000 103:01 9054958 /usr/lib64/libjemalloc.so.1
7fe716f70000-7fe716f72000 r--p 00030000 103:01 9054958 /usr/lib64/libjemalloc.so.1
7fe716f72000-7fe716f73000 rw-p 00032000 103:01 9054958 /usr/lib64/libjemalloc.so.1
pid 확인 메모리 맵을 지정하고,jemaloc의 경로를 표시하면 OK콘솔을 통해서 확인하는 방법.
$ irb
irb(main):001:0> RbConfig::CONFIG['MAINLIBS']
=> "-lz -lpthread -lrt -lrt -ljemalloc -ldl -lcrypt -lm "
-ljemalloc가 뜨면 OK.끝맺다
Jemalloc이 활성화되었습니다.
때릴 수 있는 손 때렸어.다음 차일드를 기다립니다..
참고 문장
감사합니다.
Reference
이 문제에 관하여([Jemalloc] 루비의 메모리 사용률 상승을 막으려고요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/kota111/articles/6325233512eded텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)