posix_memalign error

Anoop Alias anoopalias01 at gmail.com
Mon Aug 6 19:55:14 UTC 2018


Hi Igor,

Config is reloaded using

/usr/sbin/nginx -s reload

this is invoked from a python/shell script ( Nginx is installed on a web
control panel )

The top-level Nginx config is in the gist below

https://gist.github.com/AnoopAlias/ba5ad6749a586c7e267672ee65b32b3a

It further includes ~8k server blocks or more in some servers. Out of this
2/3 are server {} blocks with TLS config and 1/3 non-TLS ones

]# pwd
/etc/nginx/sites-enabled
# grep "server {" *|wc -l
7886

And yes most of them are very similar and mostly proxy to upstream httpd

I have tried removing all the loadable modules and even tried an older
version of nginx and all produce the error


# numastat -m

Per-node system memory usage (in MBs):
                          Node 0          Node 1           Total
                 --------------- --------------- ---------------
MemTotal                65430.84        65536.00       130966.84
MemFree                  5491.26           40.89         5532.15
MemUsed                 59939.58        65495.11       125434.69
Active                  22295.61        21016.09        43311.70
Inactive                 8742.76         4662.48        13405.24
Active(anon)            16717.10        16572.19        33289.29
Inactive(anon)           2931.94         1388.14         4320.08
Active(file)             5578.50         4443.91        10022.41
Inactive(file)           5810.82         3274.34         9085.16
Unevictable                 0.00            0.00            0.00
Mlocked                     0.00            0.00            0.00
Dirty                       7.04            1.64            8.67
Writeback                   0.00            0.00            0.00
FilePages               18458.93        10413.97        28872.90
Mapped                    862.14          413.38         1275.52
AnonPages               12579.49        15264.37        27843.86
Shmem                    7069.52         2695.71         9765.23
KernelStack                18.34            3.03           21.38
PageTables                153.14          107.77          260.90
NFS_Unstable                0.00            0.00            0.00
Bounce                      0.00            0.00            0.00
WritebackTmp                0.00            0.00            0.00
Slab                     4830.68         2254.55         7085.22
SReclaimable             2061.05          921.72         2982.77
SUnreclaim               2769.62         1332.83         4102.45
AnonHugePages               4.00            2.00            6.00
HugePages_Total             0.00            0.00            0.00
HugePages_Free              0.00            0.00            0.00
HugePages_Surp              0.00            0.00            0.00


Thanks,





On Mon, Aug 6, 2018 at 6:33 PM Igor A. Ippolitov <iippolitov at nginx.com>
wrote:

> Anoop,
>
> I suppose, most of your 10k servers are very similar, right?
> Please, post top level configuration and a typical server{}, please.
>
> Also, how do you reload configuration? With 'service nginx reload' or may
> be other commands?
>
> It looks like you have a lot of fragmented memory and only 4gb free in the
> second numa node.
> So, I'd say this is OK that you are getting errors from allocating a 16k
> stripes.
>
> Could you please post numastat -m output additionally. Just to make sure
> you have half of the memory for the second CPU.
> And we'll have a look if memory utilization may be optimized based on your
> configuration.
>
> Regards,
> Igor.
>
> On 04.08.2018 07:54, Anoop Alias wrote:
>
> Hi Igor,
>
> Setting vm.max_map_count to 20x the normal value did not help
>
> The issue happens on a group of servers and among the group, it shows up
> only in servers which have ~10k  server{} blocks
>
> On servers that have lower number of server{} blocks , the ENOMEM issue is
> not there
>
> Also, I can find that the RAM usage of the Nginx process is directly
> proportional to the number of server {} blocks
>
> For example on a server having the problem
>
> # ps_mem| head -1 && ps_mem |grep nginx
>  Private  +   Shared  =  RAM used       Program
>   1.0 GiB +   2.8 GiB =   3.8 GiB       nginx (3)
>
>
> That is for a single worker process with 4 threads in thread_pool
> # pstree|grep nginx
>         |-nginx-+-nginx---4*[{nginx}]
>         |       `-nginx
>
> Whatever config change I try the memory usage seem to mostly depend on the
> number of server contexts defined
>
> Now the issue mostly happen in nginx reload ,when one more worker process
> will be active in shutting down mode
>
> I believe the memalign error is thrown by the worker being shutdown, this
> is because the sites work after the error and also the pid mentioned in the
> error would have gone when I check ps
>
>
> # pmap 948965|grep 16K
> 00007f2923ff2000     16K r-x-- ngx_http_redis2_module.so
> 00007f2924fd7000     16K r---- libc-2.17.so
> 00007f2925431000     16K rw---   [ anon ]
> 00007f292584a000     16K rw---   [ anon ]
>
> Aug  4 05:50:00 b kernel: SysRq : Show Memory
> Aug  4 05:50:00 b kernel: Mem-Info:
> Aug  4 05:50:00 b kernel: active_anon:7757394 inactive_anon:1021319
> isolated_anon:0#012 active_file:3733324 inactive_file:2136476 isolated_
> file:0#012 unevictable:0 dirty:1766 writeback:6 wbtmp:0 unstable:0#012
> slab_reclaimable:2003687 slab_unreclaimable:901391#012 mapped:316734
> shmem:2381810 pagetables:63163 bounce:0#012 free:4851283 free_pcp:11332
> free_cma:0
> Aug  4 05:50:00 bravo kernel: Node 0 DMA free:15888kB min:8kB low:8kB
> high:12kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_
> file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB
> present:15972kB managed:15888kB mlocked:0kB dirty:0kB writeback:0kB
> mapped:0kB shmem:0kB slab_reclaimable:0kB slab_unreclaimable:0kB
> kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB free_pcp:0kB
> local_pcp:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0
> all_unreclaimable? yes
> Aug  4 05:50:00 b kernel: lowmem_reserve[]: 0 1679 64139 64139
>
> # cat /proc/buddyinfo
> Node 0, zone      DMA      0      0      1      0      2      1      1
>   0      1      1      3
> Node 0, zone    DMA32   5284   6753   6677   1083    410     59      1
>   0      0      0      0
> Node 0, zone   Normal 500327 638958 406737  14690    872    106     11
>   0      0      0      0
> Node 1, zone   Normal 584840 291640    188      0      0      0      0
>   0      0      0      0
>
>
> The only correlation I see in having the error is the number of server {}
> blocks (close to 10k) which then makes the nginx process consume ~ 4GB of
> mem with a single worker process and then a reload is done
>
>
>
>
> On Thu, Aug 2, 2018 at 6:02 PM Igor A. Ippolitov <iippolitov at nginx.com>
> wrote:
>
>> Anoop,
>>
>> There are two guesses: either mmap allocations limit is hit or memory is
>> way too fragmented.
>> Could you please track amount of mapped regions for a worker with pmap
>> and amount of 16k areas in Normal zones (it is the third number)?
>>
>> You can also set vm.max_map_count to a higher number (like 20 times
>> higher than default) and look if the error is gone.
>>
>> Please, let me know if increasing vm.max_map_count helps you.
>>
>> On 02.08.2018 13:06, Anoop Alias wrote:
>>
>> Hi Igor,
>>
>> The error happens randomly
>>
>> 2018/08/02 06:52:42 [emerg] 874514#874514: posix_memalign(16, 16384)
>> failed (12: Cannot allocate memory)
>> 2018/08/02 09:42:53 [emerg] 872996#872996: posix_memalign(16, 16384)
>> failed (12: Cannot allocate memory)
>> 2018/08/02 10:16:14 [emerg] 877611#877611: posix_memalign(16, 16384)
>> failed (12: Cannot allocate memory)
>> 2018/08/02 10:16:48 [emerg] 879410#879410: posix_memalign(16, 16384)
>> failed (12: Cannot allocate memory)
>> 2018/08/02 10:17:55 [emerg] 876563#876563: posix_memalign(16, 16384)
>> failed (12: Cannot allocate memory)
>> 2018/08/02 10:20:21 [emerg] 879263#879263: posix_memalign(16, 16384)
>> failed (12: Cannot allocate memory)
>> 2018/08/02 10:20:51 [emerg] 878991#878991: posix_memalign(16, 16384)
>> failed (12: Cannot allocate memory)
>>
>> # date
>> Thu Aug  2 10:58:48 BST 2018
>>
>> ------------------------------------------
>> # cat /proc/buddyinfo
>> Node 0, zone      DMA      0      0      1      0      2      1      1
>>   0      1      1      3
>> Node 0, zone    DMA32  11722  11057   4663   1647    609     72     10
>>   7      1      0      0
>> Node 0, zone   Normal 755026 710760 398136  21462   1114     18      1
>>   0      0      0      0
>> Node 1, zone   Normal 341295 801810 179604    256      0      0      0
>>   0      0      0      0
>> -----------------------------------------
>>
>>
>> slabinfo - version: 2.1
>> # name            <active_objs> <num_objs> <objsize> <objperslab>
>> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata
>> <active_slabs> <num_slabs> <sharedavail>
>> SCTPv6                21     21   1536   21    8 : tunables    0    0
>> 0 : slabdata      1      1      0
>> SCTP                   0      0   1408   23    8 : tunables    0    0
>> 0 : slabdata      0      0      0
>> kcopyd_job             0      0   3312    9    8 : tunables    0    0
>> 0 : slabdata      0      0      0
>> dm_uevent              0      0   2608   12    8 : tunables    0    0
>> 0 : slabdata      0      0      0
>> nf_conntrack_ffffffff81acbb00  14054  14892    320   51    4 : tunables
>>   0    0    0 : slabdata    292    292      0
>> lvp_cache             36     36    224   36    2 : tunables    0    0
>> 0 : slabdata      1      1      0
>> lve_struct          4140   4140    352   46    4 : tunables    0    0
>> 0 : slabdata     90     90      0
>> fat_inode_cache        0      0    744   44    8 : tunables    0    0
>> 0 : slabdata      0      0      0
>> fat_cache              0      0     40  102    1 : tunables    0    0
>> 0 : slabdata      0      0      0
>> isofs_inode_cache      0      0    664   49    8 : tunables    0    0
>> 0 : slabdata      0      0      0
>> ext4_inode_cache      30     30   1088   30    8 : tunables    0    0
>> 0 : slabdata      1      1      0
>> ext4_xattr             0      0     88   46    1 : tunables    0    0
>> 0 : slabdata      0      0      0
>> ext4_free_data         0      0     64   64    1 : tunables    0    0
>> 0 : slabdata      0      0      0
>> ext4_allocation_context     32     32    128   32    1 : tunables    0
>> 0    0 : slabdata      1      1      0
>> ext4_io_end            0      0     72   56    1 : tunables    0    0
>> 0 : slabdata      0      0      0
>> ext4_extent_status    102    102     40  102    1 : tunables    0    0
>> 0 : slabdata      1      1      0
>> jbd2_journal_handle      0      0     48   85    1 : tunables    0    0
>>   0 : slabdata      0      0      0
>> jbd2_journal_head      0      0    112   36    1 : tunables    0    0
>> 0 : slabdata      0      0      0
>> jbd2_revoke_table_s    256    256     16  256    1 : tunables    0    0
>>   0 : slabdata      1      1      0
>> jbd2_revoke_record_s      0      0     32  128    1 : tunables    0    0
>>   0 : slabdata      0      0      0
>> kvm_async_pf           0      0    136   30    1 : tunables    0    0
>> 0 : slabdata      0      0      0
>> kvm_vcpu               0      0  18560    1    8 : tunables    0    0
>> 0 : slabdata      0      0      0
>> xfs_dqtrx            992    992    528   31    4 : tunables    0    0
>> 0 : slabdata     32     32      0
>> xfs_dquot           3264   3264    472   34    4 : tunables    0    0
>> 0 : slabdata     96     96      0
>> xfs_ili           4342175 4774399    152   53    2 : tunables    0    0
>>   0 : slabdata  90083  90083      0
>> xfs_inode         4915588 5486076   1088   30    8 : tunables    0    0
>>   0 : slabdata 182871 182871      0
>> xfs_efd_item        2680   2760    400   40    4 : tunables    0    0
>> 0 : slabdata     69     69      0
>> xfs_da_state        1088   1088    480   34    4 : tunables    0    0
>> 0 : slabdata     32     32      0
>> xfs_btree_cur       1248   1248    208   39    2 : tunables    0    0
>> 0 : slabdata     32     32      0
>> xfs_log_ticket     14874  15048    184   44    2 : tunables    0    0
>> 0 : slabdata    342    342      0
>> xfs_ioend          12909  13104    104   39    1 : tunables    0    0
>> 0 : slabdata    336    336      0
>> scsi_cmd_cache      5400   5652    448   36    4 : tunables    0    0
>> 0 : slabdata    157    157      0
>> ve_struct              0      0    848   38    8 : tunables    0    0
>> 0 : slabdata      0      0      0
>> ip6_dst_cache       1152   1152    448   36    4 : tunables    0    0
>> 0 : slabdata     32     32      0
>> RAWv6                910    910   1216   26    8 : tunables    0    0
>> 0 : slabdata     35     35      0
>> UDPLITEv6              0      0   1216   26    8 : tunables    0    0
>> 0 : slabdata      0      0      0
>> UDPv6                832    832   1216   26    8 : tunables    0    0
>> 0 : slabdata     32     32      0
>> tw_sock_TCPv6       1152   1376    256   32    2 : tunables    0    0
>> 0 : slabdata     43     43      0
>> TCPv6                510    510   2176   15    8 : tunables    0    0
>> 0 : slabdata     34     34      0
>> cfq_queue           3698   5145    232   35    2 : tunables    0    0
>> 0 : slabdata    147    147      0
>> bsg_cmd                0      0    312   52    4 : tunables    0    0
>> 0 : slabdata      0      0      0
>> mqueue_inode_cache    136    136    960   34    8 : tunables    0    0
>> 0 : slabdata      4      4      0
>> hugetlbfs_inode_cache   1632   1632    632   51    8 : tunables    0
>> 0    0 : slabdata     32     32      0
>> configfs_dir_cache   1472   1472     88   46    1 : tunables    0    0
>> 0 : slabdata     32     32      0
>> dquot                  0      0    256   32    2 : tunables    0    0
>> 0 : slabdata      0      0      0
>> userfaultfd_ctx_cache     32     32    128   32    1 : tunables    0
>> 0    0 : slabdata      1      1      0
>> fanotify_event_info   2336   2336     56   73    1 : tunables    0    0
>>   0 : slabdata     32     32      0
>> dio                 6171   6222    640   51    8 : tunables    0    0
>> 0 : slabdata    122    122      0
>> pid_namespace         42     42   2192   14    8 : tunables    0    0
>> 0 : slabdata      3      3      0
>> posix_timers_cache   1056   1056    248   33    2 : tunables    0    0
>> 0 : slabdata     32     32      0
>> UDP-Lite               0      0   1088   30    8 : tunables    0    0
>> 0 : slabdata      0      0      0
>> flow_cache          2268   2296    144   28    1 : tunables    0    0
>> 0 : slabdata     82     82      0
>> xfrm_dst_cache       896    896    576   28    4 : tunables    0    0
>> 0 : slabdata     32     32      0
>> ip_fib_alias        2720   2720     48   85    1 : tunables    0    0
>> 0 : slabdata     32     32      0
>> RAW                 3977   4224   1024   32    8 : tunables    0    0
>> 0 : slabdata    132    132      0
>> UDP                 4110   4110   1088   30    8 : tunables    0    0
>> 0 : slabdata    137    137      0
>> tw_sock_TCP         4756   5216    256   32    2 : tunables    0    0
>> 0 : slabdata    163    163      0
>> TCP                 2705   2768   1984   16    8 : tunables    0    0
>> 0 : slabdata    173    173      0
>> scsi_data_buffer    5440   5440     24  170    1 : tunables    0    0
>> 0 : slabdata     32     32      0
>> blkdev_queue         154    154   2208   14    8 : tunables    0    0
>> 0 : slabdata     11     11      0
>> blkdev_requests   4397688 4405884    384   42    4 : tunables    0    0
>>   0 : slabdata 104902 104902      0
>> blkdev_ioc         11232  11232    112   36    1 : tunables    0    0
>> 0 : slabdata    312    312      0
>> user_namespace         0      0   1304   25    8 : tunables    0    0
>> 0 : slabdata      0      0      0
>> sock_inode_cache   12282  12282    704   46    8 : tunables    0    0
>> 0 : slabdata    267    267      0
>> file_lock_cache    20056  20960    200   40    2 : tunables    0    0
>> 0 : slabdata    524    524      0
>> net_namespace          6      6   5056    6    8 : tunables    0    0
>> 0 : slabdata      1      1      0
>> shmem_inode_cache  16970  18952    712   46    8 : tunables    0    0
>> 0 : slabdata    412    412      0
>> Acpi-ParseExt      39491  40432     72   56    1 : tunables    0    0
>> 0 : slabdata    722    722      0
>> Acpi-State          1683   1683     80   51    1 : tunables    0    0
>> 0 : slabdata     33     33      0
>> Acpi-Namespace     11424  11424     40  102    1 : tunables    0    0
>> 0 : slabdata    112    112      0
>> task_delay_info    15336  15336    112   36    1 : tunables    0    0
>> 0 : slabdata    426    426      0
>> taskstats           1568   1568    328   49    4 : tunables    0    0
>> 0 : slabdata     32     32      0
>> proc_inode_cache  169897 190608    680   48    8 : tunables    0    0
>> 0 : slabdata   3971   3971      0
>> sigqueue            2208   2208    168   48    2 : tunables    0    0
>> 0 : slabdata     46     46      0
>> bdev_cache           792    792    896   36    8 : tunables    0    0
>> 0 : slabdata     22     22      0
>> sysfs_dir_cache    74698  74698    120   34    1 : tunables    0    0
>> 0 : slabdata   2197   2197      0
>> mnt_cache         163197 163424    256   32    2 : tunables    0    0
>> 0 : slabdata   5107   5107      0
>> filp               64607  97257    320   51    4 : tunables    0    0
>> 0 : slabdata   1907   1907      0
>> inode_cache       370744 370947    616   53    8 : tunables    0    0
>> 0 : slabdata   6999   6999      0
>> dentry            1316262 2139228    192   42    2 : tunables    0    0
>>   0 : slabdata  50934  50934      0
>> iint_cache             0      0     80   51    1 : tunables    0    0
>> 0 : slabdata      0      0      0
>> buffer_head       1441470 2890290    104   39    1 : tunables    0    0
>>   0 : slabdata  74110  74110      0
>> vm_area_struct    194998 196840    216   37    2 : tunables    0    0
>> 0 : slabdata   5320   5320      0
>> mm_struct           2679   2760   1600   20    8 : tunables    0    0
>> 0 : slabdata    138    138      0
>> files_cache         8680   8925    640   51    8 : tunables    0    0
>> 0 : slabdata    175    175      0
>> signal_cache        3691   3780   1152   28    8 : tunables    0    0
>> 0 : slabdata    135    135      0
>> sighand_cache       1950   2160   2112   15    8 : tunables    0    0
>> 0 : slabdata    144    144      0
>> task_xstate         8070   8658    832   39    8 : tunables    0    0
>> 0 : slabdata    222    222      0
>> task_struct         1913   2088   4080    8    8 : tunables    0    0
>> 0 : slabdata    261    261      0
>> cred_jar           31699  33936    192   42    2 : tunables    0    0
>> 0 : slabdata    808    808      0
>> anon_vma_chain    164026 168704     64   64    1 : tunables    0    0
>> 0 : slabdata   2636   2636      0
>> anon_vma           84104  84594     88   46    1 : tunables    0    0
>> 0 : slabdata   1839   1839      0
>> pid                11127  12576    128   32    1 : tunables    0    0
>> 0 : slabdata    393    393      0
>> shared_policy_node   9350   9350     48   85    1 : tunables    0    0
>> 0 : slabdata    110    110      0
>> numa_policy           62     62    264   31    2 : tunables    0    0
>> 0 : slabdata      2      2      0
>> radix_tree_node   771778 1194312    584   28    4 : tunables    0    0
>> 0 : slabdata  42654  42654      0
>> idr_layer_cache     2538   2565   2112   15    8 : tunables    0    0
>> 0 : slabdata    171    171      0
>> dma-kmalloc-8192       0      0   8192    4    8 : tunables    0    0
>> 0 : slabdata      0      0      0
>> dma-kmalloc-4096       0      0   4096    8    8 : tunables    0    0
>> 0 : slabdata      0      0      0
>> dma-kmalloc-2048       0      0   2048   16    8 : tunables    0    0
>> 0 : slabdata      0      0      0
>> dma-kmalloc-1024       0      0   1024   32    8 : tunables    0    0
>> 0 : slabdata      0      0      0
>> dma-kmalloc-512        0      0    512   32    4 : tunables    0    0
>> 0 : slabdata      0      0      0
>> dma-kmalloc-256        0      0    256   32    2 : tunables    0    0
>> 0 : slabdata      0      0      0
>> dma-kmalloc-128        0      0    128   32    1 : tunables    0    0
>> 0 : slabdata      0      0      0
>> dma-kmalloc-64         0      0     64   64    1 : tunables    0    0
>> 0 : slabdata      0      0      0
>> dma-kmalloc-32         0      0     32  128    1 : tunables    0    0
>> 0 : slabdata      0      0      0
>> dma-kmalloc-16         0      0     16  256    1 : tunables    0    0
>> 0 : slabdata      0      0      0
>> dma-kmalloc-8          0      0      8  512    1 : tunables    0    0
>> 0 : slabdata      0      0      0
>> dma-kmalloc-192        0      0    192   42    2 : tunables    0    0
>> 0 : slabdata      0      0      0
>> dma-kmalloc-96         0      0     96   42    1 : tunables    0    0
>> 0 : slabdata      0      0      0
>> kmalloc-8192         385    388   8192    4    8 : tunables    0    0
>> 0 : slabdata     97     97      0
>> kmalloc-4096        9296  10088   4096    8    8 : tunables    0    0
>> 0 : slabdata   1261   1261      0
>> kmalloc-2048       65061 133536   2048   16    8 : tunables    0    0
>> 0 : slabdata   8346   8346      0
>> kmalloc-1024       11987  21120   1024   32    8 : tunables    0    0
>> 0 : slabdata    660    660      0
>> kmalloc-512       107510 187072    512   32    4 : tunables    0    0
>> 0 : slabdata   5846   5846      0
>> kmalloc-256       160498 199104    256   32    2 : tunables    0    0
>> 0 : slabdata   6222   6222      0
>> kmalloc-192       144975 237426    192   42    2 : tunables    0    0
>> 0 : slabdata   5653   5653      0
>> kmalloc-128        36799 108096    128   32    1 : tunables    0    0
>> 0 : slabdata   3378   3378      0
>> kmalloc-96         99510 238896     96   42    1 : tunables    0    0
>> 0 : slabdata   5688   5688      0
>> kmalloc-64        7978152 8593280     64   64    1 : tunables    0    0
>>   0 : slabdata 134270 134270      0
>> kmalloc-32        2939882 3089664     32  128    1 : tunables    0    0
>>   0 : slabdata  24138  24138      0
>> kmalloc-16        172057 172288     16  256    1 : tunables    0    0
>> 0 : slabdata    673    673      0
>> kmalloc-8         109568 109568      8  512    1 : tunables    0    0
>> 0 : slabdata    214    214      0
>> kmem_cache_node      893    896     64   64    1 : tunables    0    0
>> 0 : slabdata     14     14      0
>> kmem_cache           612    612    320   51    4 : tunables    0    0
>> 0 : slabdata     12     12      0
>>
>> -------------------------------------------------
>>
>>
>> # uname -r
>> 3.10.0-714.10.2.lve1.5.17.1.el7.x86_64
>>
>> --------------------------------------------------------
>>
>> Core part of glances
>> http://i.imgur.com/La5JbQn.png
>> -----------------------------------------------------------
>>
>> Thank you very much for looking into this
>>
>>
>> On Thu, Aug 2, 2018 at 12:37 PM Igor A. Ippolitov <iippolitov at nginx.com>
>> wrote:
>>
>>> Anoop,
>>>
>>> I doubt this will be the solution, but may we have a look at
>>> /proc/buddyinfo and /proc/slabinfo the moment when nginx can't allocate
>>> memory?
>>>
>>> On 02.08.2018 08:15, Anoop Alias wrote:
>>>
>>> Hi Maxim,
>>>
>>> I enabled debug and the memalign call is happening on nginx reloads and
>>> the ENOMEM happen sometimes on the reload(not on all reloads)
>>>
>>> 2018/08/02 05:59:08 [notice] 872052#872052: signal process started
>>> 2018/08/02 05:59:23 [notice] 871570#871570: signal 1 (SIGHUP) received
>>> from 872052, reconfiguring
>>> 2018/08/02 05:59:23 [debug] 871570#871570: wake up, sigio 0
>>> 2018/08/02 05:59:23 [notice] 871570#871570: reconfiguring
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 0000000002B0DA00:16384 @16      === > the memalign call on reload
>>> 2018/08/02 05:59:23 [debug] 871570#871570: malloc: 00000000087924D0:4560
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 000000000E442E00:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: malloc: 0000000005650850:4096
>>> 20
>>>
>>>
>>>
>>>
>>> 2018/08/02 05:48:49 [debug] 871275#871275: bind() xxxx:443 #71
>>> 2018/08/02 05:48:49 [debug] 871275#871275: bind() xxxx:443 #72
>>> 2018/08/02 05:48:49 [debug] 871275#871275: bind() xxxx:443 #73
>>> 2018/08/02 05:48:49 [debug] 871275#871275: bind() xxxx:443 #74
>>> 2018/08/02 05:48:49 [debug] 871275#871275: add cleanup: 000000005340D728
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 00000000024D3260:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 00000000517BAF10:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 0000000053854FC0:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 0000000053855FD0:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 0000000053856FE0:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 0000000053857FF0:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: posix_memalign:
>>> 0000000053859000:16384 @16
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 000000005385D010:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 000000005385E020:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 000000005385F030:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 00000000536CD160:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 00000000536CE170:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 00000000536CF180:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 00000000536D0190:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 00000000536D11A0:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 00000000536D21B0:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 00000000536D31C0:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 00000000536D41D0:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 00000000536D51E0:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 00000000536D61F0:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 00000000536D7200:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 00000000536D8210:4096
>>> 2018/08/02 05:48:49 [debug] 871275#871275: malloc: 00000000536D9220:4096
>>>
>>>
>>> Infact there are lot of such calls during a reload
>>>
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA17ED00:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA1B0FF0:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA1E12C0:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA211590:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA243880:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA271B30:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA2A3E20:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA2D20D0:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA3063E0:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA334690:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA366980:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA396C50:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA3C8F40:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA3F9210:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA4294E0:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA45B7D0:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA489A80:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA4BBD70:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA4EA020:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA51E330:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA54C5E0:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA57E8D0:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA5AEBA0:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA5DEE70:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA611160:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA641430:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA671700:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA6A29E0:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA6D5CE0:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA707FD0:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA736280:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA768570:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA796820:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA7CAB30:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA7F8DE0:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA82B0D0:16384 @16
>>> 2018/08/02 05:59:23 [debug] 871570#871570: posix_memalign:
>>> 00000000BA85B3A0:16384 @16
>>>
>>>
>>>
>>> What is perplexing is that the system has enough free (available RAM)
>>> #############
>>> # free -g
>>>               total        used        free      shared  buff/cache
>>>  available
>>> Mem:            125          54          24           8          46
>>>     58
>>> Swap:             0           0           0
>>> #############
>>>
>>> # ulimit -a
>>> core file size          (blocks, -c) 0
>>> data seg size           (kbytes, -d) unlimited
>>> scheduling priority             (-e) 0
>>> file size               (blocks, -f) unlimited
>>> pending signals                 (-i) 514579
>>> max locked memory       (kbytes, -l) 64
>>> max memory size         (kbytes, -m) unlimited
>>> open files                      (-n) 1024
>>> pipe size            (512 bytes, -p) 8
>>> POSIX message queues     (bytes, -q) 819200
>>> real-time priority              (-r) 0
>>> stack size              (kbytes, -s) 8192
>>> cpu time               (seconds, -t) unlimited
>>> max user processes              (-u) 514579
>>> virtual memory          (kbytes, -v) unlimited
>>> file locks                      (-x) unlimited
>>>
>>> #########################################
>>>
>>> There is no other thing limiting memory allocation
>>>
>>> Any way to prevent this or probably identify/prevent this
>>>
>>>
>>> On Tue, Jul 31, 2018 at 7:08 PM Maxim Dounin <mdounin at mdounin.ru> wrote:
>>>
>>>> Hello!
>>>>
>>>> On Tue, Jul 31, 2018 at 09:52:29AM +0530, Anoop Alias wrote:
>>>>
>>>> > I am repeatedly seeing errors like
>>>> >
>>>> > ######################
>>>> > 2018/07/31 03:46:33 [emerg] 2854560#2854560: posix_memalign(16, 16384)
>>>> > failed (12: Cannot allocate memory)
>>>> > 2018/07/31 03:54:09 [emerg] 2890190#2890190: posix_memalign(16, 16384)
>>>> > failed (12: Cannot allocate memory)
>>>> > 2018/07/31 04:08:36 [emerg] 2939230#2939230: posix_memalign(16, 16384)
>>>> > failed (12: Cannot allocate memory)
>>>> > 2018/07/31 04:24:48 [emerg] 2992650#2992650: posix_memalign(16, 16384)
>>>> > failed (12: Cannot allocate memory)
>>>> > 2018/07/31 04:42:09 [emerg] 3053092#3053092: posix_memalign(16, 16384)
>>>> > failed (12: Cannot allocate memory)
>>>> > 2018/07/31 04:42:17 [emerg] 3053335#3053335: posix_memalign(16, 16384)
>>>> > failed (12: Cannot allocate memory)
>>>> > 2018/07/31 04:42:28 [emerg] 3053937#3053937: posix_memalign(16, 16384)
>>>> > failed (12: Cannot allocate memory)
>>>> > 2018/07/31 04:47:54 [emerg] 3070638#3070638: posix_memalign(16, 16384)
>>>> > failed (12: Cannot allocate memory)
>>>> > ####################
>>>> >
>>>> > on a few servers
>>>> >
>>>> > The servers have enough memory free and the swap usage is 0, yet
>>>> somehow
>>>> > the kernel denies the posix_memalign with ENOMEM ( this is what I
>>>> think is
>>>> > happening!)
>>>> >
>>>> > The numbers requested are always 16, 16k . This makes me suspicious
>>>> >
>>>> > I have no setting in nginx.conf that reference a 16k
>>>> >
>>>> > Is there any chance of finding out what requests this and why this is
>>>> not
>>>> > fulfilled
>>>>
>>>> There are at least some buffers which default to 16k - for
>>>> example, ssl_buffer_size (http://nginx.org/r/ssl_buffer_size).
>>>>
>>>> You may try debugging log to futher find out where the particular
>>>> allocation happens, see here for details:
>>>>
>>>> http://nginx.org/en/docs/debugging_log.html
>>>>
>>>> But I don't really think it worth the effort.  The error is pretty
>>>> clear, and it's better to focus on why these allocations are
>>>> denied.  Likely you are hitting some limit.
>>>>
>>>> --
>>>> Maxim Dounin
>>>> http://mdounin.ru/
>>>> _______________________________________________
>>>> nginx mailing list
>>>> nginx at nginx.org
>>>> http://mailman.nginx.org/mailman/listinfo/nginx
>>>>
>>>
>>>
>>> --
>>> *Anoop P Alias*
>>>
>>>
>>>
>>> _______________________________________________
>>> nginx mailing listnginx at nginx.orghttp://mailman.nginx.org/mailman/listinfo/nginx
>>>
>>>
>>> _______________________________________________
>>> nginx mailing list
>>> nginx at nginx.org
>>> http://mailman.nginx.org/mailman/listinfo/nginx
>>
>>
>>
>> --
>> *Anoop P Alias*
>>
>>
>>
>> _______________________________________________
>> nginx mailing listnginx at nginx.orghttp://mailman.nginx.org/mailman/listinfo/nginx
>>
>>
>> _______________________________________________
>> nginx mailing list
>> nginx at nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx
>
>
>
> --
> *Anoop P Alias*
>
>
>
> _______________________________________________
> nginx mailing listnginx at nginx.orghttp://mailman.nginx.org/mailman/listinfo/nginx
>
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx



-- 
*Anoop P Alias*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20180807/59bea3ac/attachment-0001.html>


More information about the nginx mailing list