netpoll

1.怎样才算网络负载高?

  • 网卡流量么?
  • 看网卡软中断

2.go如何做到保存现场,放弃执行权

  • gopark
  • 现场:gobuf

3.go的epoll_wait和原生的有什么区别

  • runtime : sys_linux_amd64.s, runtime·epollwait
  • syscall: zsyscall_linux_amd64.go, func EpollWait

4.在sync.Map中  例如 value 为  &struct {a int, b sync.RWLock}, 主流方式,new一个v,写好以后,Store回去, 但是如果 我更新value中的字段a时时,首先load(key), 得到), 全程都不做store,这样会是否会有问题

  • v 并发不加锁读,就会有问题
  • v := m.Load(“key”) ; fmt.Println(v) 这个程序就有问题
  • 跑 -race test 就可以看出有没有问题了

5.读写序列化是代表保证读或者写的顺序么,咋保证的呢

  • aaaaaa. bbbbbbbb
  • write aaabbbbbbbbaaa

6.一个应用是不是只有一个pdesc,底下wg和rg分别挂了所有上下文的读写goroutine链表?

  • 每一条连接都有一个 podesc
  • 每一个 polldesc 上只能搞一个 wg 和一个 rg

7.讲一下 大小端的问题吧,整型数据要 大小端,字节流不要大小端,为什么。

8.滴滴的 php-fpm 如何做 服务发现的?是在php-fpm master进程上加了一个 线程实现的吗?

9.用http的连接池如果不活跃连接数多了是不是反而有坏处

  • 连接池,作为 client 端,需要连接池;这个连接数再多也没多少
  • server 端,连接数很多

10.一般一个web app,8c 16G,跑多大并发?qps。

  • 8c 16G
    • 长连接
      • 连接数有多少
      • 请求的包大小有多少
        • hello world 应用,从 4 bytes —-> 1MB
      • 外部依赖数有多少
        • 一个上游
        • 一百个上游
      • 如果是个简单的查询服务
        • redis —— 单机跑个一万 qps
        • mysql —–
  • 短连接

20.深入网络编程,一般往什么岗位方向

  • 应用网络
  • 有 nginx 开发岗位

21.想了解一下golang在游戏公司一般都做些什么?

  • 也是做后端服务的
  • 长连接

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 lihuanjie113@gmail.com

×

喜欢就点赞,疼爱就打赏