前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Linux高性能服务器编程》读书笔记:linux服务器程序规范

《Linux高性能服务器编程》读书笔记:linux服务器程序规范

作者头像
呱牛笔记
发布2023-05-02 15:03:46
1.1K0
发布2023-05-02 15:03:46
举报
文章被收录于专栏:呱牛笔记

服务器程序规范,需要强化和遵守的,作者给列了4条规范:

1、Linux服务器程序一般以后台进程形式运行,也就是以daemon守护进程的方式,守护进程的父进程通常是init进程(PID进程为1),作者在7.6 服务程序后台化给出了一个程序的清单,还是很有参考意义的。后台进程形式运行,也就是通过fork一个子进程,结束父进程的方式运行,这样避免很多前台启动,随着操作终端界面的关闭而结束服务器程序的运行;

Linux服务器程序的用户信息也是容易忽略和出问题的地方,UID/EUID/GID/EGID,如果应用程序需要操作某个配置文件,但又没有操作权限就悲剧了,所以需要确定好应用程序文件的权限组,以及可能操作配置文件的权限组很重要;

EUID标识这个应用程序文件的所属id(即文件的所有者的用户id);

EGID的含义与EUID类似,给运行目标程序的组用户提供有效组的权限;

避免应用程序的启动使用root账户启动;

进程组:每个进程都隶属于一个进程组,因此除了PID信息之外,还有进程组ID(PGID),每个进程组都有一个首领进程,其PGID和PID相同。 

2、Linux服务器程序通常有一套日志系统,至少能输出日志到文件,有的高级服务器还能输出日志到专门的UDP服务器,大部分后台进程都在/var/log目录下拥有自己的日志目录。

这里需要关注就是日志的归档,如果使用系统的调试信息输出到/var/log的方式,则归档由系统自动来完成,存在在自定义日志路径的服务器程序,需要关注日志的归档,我们经常有项目中出现打印几十个G的日志,导致服务器磁盘空间被打爆,系统响应缓慢的事故;

3、Linux服务器程序通常是可配置的,通常能处理很多命令行选项,如果一次运行的选项太多,则可以用配置文件进行管理。绝大多数服务器程序都有配置文件,并存放在/etc目录下,比方nginx默认在/etc/nginx/nginx.conf。

系统资源限制,通过使用ulimit命令修改当前shell环境下的软限制或者硬限制,这种修改对该shell启动过的所有后续程序有效,也可以通过修改配置文件来改变系统软限制和硬限制,并且是永久的,比如ulimit: 修改Linux操作系统对一个进程打开的文件句柄数量的限制,配置:

>命令方式(暂时):ulimit -n xx 修改每个进程可打开的文件数,缺省值是 1024

>将修改命令写入~/.bashrc 文件,或修改配置文件(永久):vi /etc/security/limits.conf

## 通常优化centos系统的网络参数如下:

终端输入 vim /etc/sysctl.conf 打开配置文件,将下列内容复制进文件后保存。

```text

net.ipv4.ip_local_port_range = 1024 65535

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

net.ipv4.tcp_rmem = 4096 87380 16777216

net.ipv4.tcp_wmem = 4096 65536 16777216

net.ipv4.tcp_fin_timeout = 10

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_window_scaling = 0

net.ipv4.tcp_sack = 0

net.core.netdev_max_backlog = 30000

net.ipv4.tcp_no_metrics_save = 1

net.core.somaxconn = 22144

net.ipv4.tcp_syncookies = 0

net.ipv4.tcp_max_orphans = 262144

net.ipv4.tcp_max_syn_backlog = 262144

net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_syn_retries = 2

vm.overcommit_memory = 1

fs.file-max = 2000000

fs.nr_open = 2000000

```

## 优化句柄数:终端输入 vim /etc/security/limits.conf 打开配置文件,配置如下两项后保存。

```text

*               soft    nofile          1200000

*               hard    nofile          1200000

``` 

4、Linux服务器进程通常会在启动的时候生成一个PID文件并存放在/var/run目录中,以记录该后台进程的PID,

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档