Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
234 lines (160 sloc) 10 KB

Talk Details


Optimization for number of goroutines using feedback control

Elevator Pitch

You have 300 characters to sell your talk. This is known as the "elevator pitch". Make it as exciting and enticing as possible.

The design for number of concurrency is important to achieve both speed and stability.
Giving a good performance without depending on platform and load conditions, it's desirable for the number to be dynamic and rapidly controlled.
So, I propose an architecture to solve this by feedback control.

[Total character count: 296 (without new lines)]

Talk Format

What format is this talk best suited for?

  • Keynote (25 minutes)
  • Tutorial (45 minutes)

Audience Level

Who is the best target audience for this talk?

  • All
  • Beginner
  • Intermediate
  • Advanced


This field supports Markdown. The description will be seen by reviewers during the CFP process and may eventually be seen by the attendees of the event.

You should make the description of your talk as compelling and exciting as possible. Remember, you're selling both the organizers of the events to select your talk, as well as trying to convince attendees your talk is the one they should see.



1. 自己紹介 (1min)
2. 並行数の設計に関する課題 (10min)
3. フィードバック制御を用いたGoroutine起動数の動的な調整 (20min)
4. 評価 (10min)
5. 質疑応答 (4min)


#### 1. 自己紹介 (1min)


#### 2. 並行数の設計に関する課題 (10min)


- CPUバウンドとI/Oバウンド
- 実行環境や負荷状況の差異
- 複雑な指標


#### 3. フィードバック制御を用いたGoroutine起動数の動的な調整 (20min)


#### 4. 評価 (10min)


#### 5. 質疑応答 (4min)
Go efficiently processes concurrent programs by smart runtime and light weight goroutines.
And yet, achieving both speed and stability, developers have to decide optimum number of goroutines through their experiences and continuous tuning.
And, in most case, the environment on which the program is tuned and the environment on which it will be executed are different.
Thus, giving a good performance without depending on platform and load conditions, it's desirable for the number to be dynamic and rapidly controlled.
In this session, I propose an aproach which dynamic controls the number of goroutines using feedback control and dynamic semaphore.

This session targets developers who has an interest in performance tuning of concurrent application using goroutines.
The flow of this session as follows.

1. Self introduction (1min)
2. The problems about design for number of concurrency (10min)
3. Dynamic control the number of goroutines using feedback control (20min)
4. Evalution (10min)
5. Questions and Answers (4min)

The details of each section are as follows.

#### 1. Self introduction (1min)
Only self introduction.

#### 2. The problems about design for number of concurrency (10min)
In this section, I will organize the problems about design for number of concurrency from following viewpoints.

- CPU bound and I/O bound
- Different environment and load conditions
- Complicated metrics

And, we confirm that the optimum number of concurrency depend on environment using an sample application with frequent I/O.

#### 3. Dynamic control the number of goroutines using feedback control (20min)
In this section, I will propose an architecture which dynamic and continuous controls the number of goroutines without depending on platform, runtime and current load.
First, I explain the basic of feedback control, then the controller which uses CPU usage balance as an metrics, and dynamic semaphore.
And, I introduce a library "[monochromegane/kaburaya](" which I am developing to solve them.

#### 4. Evalution (10min)
In this section, I will evaluate the proposed architecture.
First, I define metrics for optimum number of concurrency.
Then, we confirm that the number is controlled dynamic and continuous by the implemented library using the above sample application.

#### 5. Questions and Answers (4min)
This is a discussion period.


This field supports Markdown. Notes will only be seen by reviewers during the CFP process. This is where you should explain things such as technical requirements, why you're the best person to speak on this subject, etc...

私は["The Platinum Searcher"](と名付けたGo言語で書かれた高速なgrepツールを開発しています.
I am developing a fast grep tool written in Go named ["The Platinum Searcher"](
Because the tool runs on various clients, it is required to decide optimum number of concurrency without depending on the environments.
So, I have deepened my understanding of [the runtime of Go]( and have proposed this architecture.
At this conference I would like to discuss with you about these approaches.


Tag your talk to make it easier for event organizers to be able to find. Examples are "ruby, javascript, rails".

goroutine, concurrency, performance

go golang These tags are being used by this event to organize submissions. Please tag your submissions with the appropriate tags.

Profile Details

This CFP is anonymized. The organizers will not see your personal information until your talk has been selected.


Yusuke Miyake


Have a blog or some other website you'd like to have listed with this profile? If so, this is the field for you.


This field supports Markdown. Your bio sells you. Who are you? Why should people listen to you? Who's your favorite member of One Direction? This is your chance to put it all out there.

Researcher of internet and operation technology, and Web developer.
I am Gopher in Japan.
I love writing [OSS using Go](

Organization or Affiliation

The name of your company, organization, or affiliation if you have any.

Pepabo R&D Institute, GMO Pepabo, Inc.

Twitter Handle

Twitter Handle should just be your handle without the "@".


Shirt Size

What size swag fits you best?

  • Men's M
  • Men's L
  • Men's XL
  • Men's 2XL
  • Men's 3XL
  • Men's 4XL
  • Women's S
  • Women's M
  • Women's L
  • Women's XL
  • Women's 2XL
  • Women's 3XL
  • Women's 4XL

Additional Information

You can edit your proposal at any time until the CFP closes. Once the CFP closes all proposals are final. If there is feedback or requests for clarification from the reviewers it will be communicated to you before the CFP closes.

You can’t perform that action at this time.