Сборка приложения Go с использованием confluent-kafka-go в Linux

Я думаю, что это должно быть обработано операционной системой. Нет встроенного ограничения, о котором я знаю; если необходимо, R будет использовать всю память, которую он может получить.

Чтобы получить информацию об итогах и / или в доступной памяти в Linux, вы можете попробовать

system('grep MemTotal /proc/meminfo')

или

system('free -m')

или

system('lshw -class memory')

Последняя команда будет жаловаться, что вы должны запускать ее как суперпользователя, и она даст предупреждение о том, что вывод может быть неточным; но по моему опыту он все равно предоставит довольно полезный вывод.


. Чтобы получить информацию об использовании памяти используемого сценария R, можно либо контролировать используемые в данный момент ресурсы, запустив top в отдельный терминал или использовать, например, следующий системный вызов из сценария R:

system(paste0("cat /proc/",Sys.getpid(),"/status | grep VmSize"))

Надеюсь, что это поможет.

2
задан shy alon 15 January 2019 в 15:53
поделиться

2 ответа

Вы можете указать версию пакета для установки в команде apt-get. Например,

apt-get install librdkafka-dev=0.11.6~1confluent5.0.1-1

Если это не сработает, то я думаю, что источники apt не имеют версии libdkafka 0.11.5. Вы можете добавить репозиторий с верной версией librdkafka в /etc/apt/sources.list, как описано здесь: https://docs.confluent.io/current/installation/install_cp/deb-ubuntu.html#systemd-ubuntu-debian- установить

0
ответ дан Edenhill 15 January 2019 в 15:53
поделиться

У меня была похожая проблема несколько недель назад. IIRC confluent-kafka-go требует последней версии librdkafka-dev, которая просто еще не была выпущена для Alpine или других. Хотя я смог найти его для Ubuntu, поэтому мое решение (которое было более сложным, чем я ожидал, но оно работало) состояло в том, чтобы начать с чистой Ubuntu, установить librdkafka-dev, установить нужную версию Go и скомпилировать в Docker ,

Вот как это выглядит:

FROM ubuntu

# Install the C lib for kafka
RUN apt-get update
RUN apt-get install -y --no-install-recommends apt-utils wget gnupg software-properties-common
RUN apt-get install -y apt-transport-https ca-certificates
RUN wget -qO - https://packages.confluent.io/deb/5.1/archive.key | apt-key add -
RUN add-apt-repository "deb [arch=amd64] https://packages.confluent.io/deb/5.1 stable main"
RUN apt-get update
RUN apt-get install -y librdkafka-dev

# Install Go
RUN add-apt-repository ppa:longsleep/golang-backports
RUN apt-get update
RUN apt-get install -y golang-1.11-go

# build the library
WORKDIR /go/src/gitlab.appsflyer.com/rantav/kafka-mirror-tester
COPY *.go ./
COPY // the rest of your go files. You may copy recursive if you want
COPY vendor vendor

RUN GOPATH=/go GOOS=linux /usr/lib/go-1.11/bin/go build -a -o main .

EXPOSE 8000

ENTRYPOINT ["./main"]
0
ответ дан Ran 15 January 2019 в 15:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: