FYI, I've opened FLINK-20503 for this. https://issues.apache.org/jira/browse/FLINK-20503
Thank you~ Xintong Song On Mon, Dec 7, 2020 at 11:10 AM Xintong Song <tonysong...@gmail.com> wrote: > I forgot to mention that it is designed that task managers always have > `Double#MAX_VALUE` cpu cores in local execution. > > > And I think Yangze is right. The log "The configuration option > taskmanager.cpu.cores required for local execution is not set, setting it > to" can be misleading for users. Will fire an issue on that. > > > Thank you~ > > Xintong Song > > > > > On Mon, Dec 7, 2020 at 11:03 AM Xintong Song <tonysong...@gmail.com> > wrote: > >> Hi Rex, >> >> We're running this in a local environment so that may be contributing to >>> what we're seeing. >>> >> Just to double check on this. By `local environment`, you mean running >> flink without setting up a standalone cluster or submitting it to a >> K8s/Yarn cluster? (Typically executing from an IDE, running `flink run -t >> local`, or running your own application that calls >> `ExecutionEnvironment#execute`). >> If yes, then this is kind of expected. >> >> A couple of things that might help you understand this. >> >> - Running on a local environment means setting up the Flink cluster >> within the current process (the IDE process if executed from an IDE, the >> flink client process if using `flink run -t local`, or your own >> application >> process). That also means most of the resource configurations cannot take >> effect, because the resources of the JVM are already determined. Please >> refer to the memory configuration documents for options that still take >> effect in local execution. [1][2] >> - David is correct that `taskmanager.cpu.cores` is only intended for >> internal usages. I assume you learnt about this configuration by reading >> the source codes? If true, please also be aware that the JavaDoc >> of `TaskManagerOption#CPU_CORES` says "DO NOT USE THIS CONFIG OPTION", and >> it is also annotated with `ExcludeFromDocumentation` so that users do not >> learn this option from the documents. >> - Flink does not really control how many cpu cores it uses. However, >> when running on an external resource management system (K8s, Yarn, Mesos), >> it requires a certain amount of cpu resources for its containers/pods, and >> allows the external system to control its cpu usage. You can use the >> following configuration options to control how many cpu cores are >> requested >> in such cases. >> - kubernetes.jobmanager.cpu >> - kubernetes.taskmanager.cpu >> - yarn.appmaster.vcores >> - yarn.containers.vcores >> - mesos.resourcemanager.tasks.cpus >> >> >> Thank you~ >> >> Xintong Song >> >> >> [1] >> https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/memory/mem_setup_tm.html#local-execution >> [2] >> https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/memory/mem_setup_jobmanager.html#local-execution >> >> >> On Mon, Dec 7, 2020 at 10:32 AM Yangze Guo <karma...@gmail.com> wrote: >> >>> Hi, Rex, >>> >>> Can you share more logs for it. Did you see something like "The >>> configuration option taskmanager.cpu.cores required for local >>> execution is not set, setting it to" in your logs? >>> >>> Best, >>> Yangze Guo >>> >>> Best, >>> Yangze Guo >>> >>> >>> On Sat, Dec 5, 2020 at 6:53 PM David Anderson <dander...@apache.org> >>> wrote: >>> > >>> > taskmanager.cpu.cores is intended for internal use only -- you aren't >>> meant to set this option. What happens if you leave it alone? >>> > >>> > Regards, >>> > David >>> > >>> > >>> > On Sat, Dec 5, 2020 at 8:04 AM Rex Fenley <r...@remind101.com> wrote: >>> >> >>> >> We're running this in a local environment so that may be contributing >>> to what we're seeing. >>> >> >>> >> On Fri, Dec 4, 2020 at 10:41 PM Rex Fenley <r...@remind101.com> wrote: >>> >>> >>> >>> Hello, >>> >>> >>> >>> I'm tuning flink for parallelism right now and when I look at the >>> JobManager I see >>> >>> taskmanager.cpu.cores1.7976931348623157E308 >>> >>> Which looks like the maximum double number. >>> >>> >>> >>> We have 8 cpu cores, so we figured we'd bump to 16 for hyper >>> threading. We have 37 operators so we rounded up and set 40 task slots. >>> >>> >>> >>> Here is our configuration >>> >>> >>> >>> "vmArgs": "-Xmx16g -Xms16g -XX:MaxDirectMemorySize=1207959552 >>> -XX:MaxMetaspaceSize=268435456 -Dlog.file=/tmp/flink.log >>> -Dtaskmanager.memory.framework.off-heap.size=134217728b >>> -Dtaskmanager.memory.network.max=1073741824b >>> -Dtaskmanager.memory.network.min=1073741824b >>> -Dtaskmanager.memory.framework.heap.size=134217728b >>> -Dtaskmanager.memory.managed.size=6335076856b >>> -Dtaskmanager.memory.task.heap.size=8160437768b >>> -Dtaskmanager.memory.task.off-heap.size=0b >>> -Dtaskmanager.numberOfTaskSlots=40 -Dtaskmanager.cpu.cores=16.0" >>> >>> >>> >>> We then tried with -Dtaskmanager.cpu.cores=7.0 and still ended up >>> with that very odd value for cpu cores. >>> >>> >>> >>> How do we correctly adjust this? >>> >>> >>> >>> Thanks! >>> >>> -- >>> >>> >>> >>> Rex Fenley | Software Engineer - Mobile and Backend >>> >>> >>> >>> >>> >>> Remind.com | BLOG | FOLLOW US | LIKE US >>> >> >>> >> >>> >> >>> >> -- >>> >> >>> >> Rex Fenley | Software Engineer - Mobile and Backend >>> >> >>> >> >>> >> Remind.com | BLOG | FOLLOW US | LIKE US >>> >>